我可以看到日志中的数据,但我无法从函数中获取它。从npm谷歌距离返回数据
var distance = require('google-distance');
distance.get(
{
index: 1,
origin: '37.772886,-122.423771',
destination: '37.871601,-122.269104'
},
function(err, data) {
if (err) return console.log(err);
console.log(data);
return data;
});
我可以看到数据在控制台,所以我尝试这样做:
var distance = require('google-distance');
var output = distance.get(
{
index: 1,
origin: '37.772886,-122.423771',
destination: '37.871601,-122.269104'
},
function(err, data) {
if (err) return console.log(err);
return data;
});
console.log(output);
此日志“不确定”
我怀疑我需要使用一个承诺或东西。有人能给我一个例子吗?
更新: 以下是我如何实现承诺。
var promise = require('promise');
var tideDistance = {};
var p = new promise(function(resolve, reject) {
distance.get(
{
index: 1,
origin: '37.772886,-122.423771',
destination: '37.871601,-122.269104'
},
function(err, data) {
if (err) reject(err);
resolve(data);
return data;
});
});
p.then(function(result) {
tideDistance = result;
return result;
}).catch(function(err) {
console.log(err);
});
console.log(tideDistance);
此日志{}
的[我如何返回从一个异步调用的响应?]可能的复制(https://开头stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –