javascript - 属性返回空字符串,而函数工作正常
问题描述
exports.getAddress = asyncHandler(async (req, res, next) => {
var lon = req.query.lon;
var lat = req.query.lat;
var formattedAddress = "";
var url1 = 'url'
request(url1, { json: true }, (err, res, body) => {
if (err) { return console.log(err); }
formattedAddress = body.formattedAddress;
console.log(formattedAddress); // string address showing
});
console.log(formattedAddress); // string is empty
res.status(200).json({ success: true, data: formattedAddress });
});
我阅读了上述和许多帖子,但不明白如何在函数之外获取字符串值。
解决方案
您在完成formattedAddress
之前访问request(...)
,欢迎来到异步世界:D
为了使它工作,你应该移动res.status(200).json({ success: true, data: formattedAddress });
到请求回调内部,如下所示:
exports.getAddress = asyncHandler(async (req, res, next) => {
var lon = req.query.lon;
var lat = req.query.lat;
var formattedAddress = "";
var url1 = 'url'
request(url1, { json: true }, (err, res, body) => {
if (err) { return console.log(err); }
formattedAddress = body.formattedAddress;
res.status(200).json({ success: true, data: formattedAddress });
});
});
推荐阅读
- datetime - 在 ElasticSearch 中以微秒格式保存日期
- python - Is there any way to make a timeseries scatterplot with array sizing in Matplotlib?
- ios - 聊天信使 UITableViewCell,正在加载消息
- python-3.x - 多处理中的 Google Stackdriver 不起作用
- android - 与模拟器相比,毕加索在真实设备中加载图像需要花费太多时间
- amazon-web-services - 如何在 AWS Cost Explorer 中发送每月保存的报告
- javascript - Show datetimepicker last 6 days 也知道如何动态删除文本框
- c# - 实体框架在 SQL 中加密数据和解密
- ruby-on-rails - 使用嵌套的嵌套属性时在 Rails 中使用组
- python - 如何迭代 numpy 数组的“某些”维度?