Javascript 从npm google distance返回数据
我可以在日志中看到数据,但无法从函数中获取数据Javascript 从npm google distance返回数据,javascript,node.js,npm,promise,Javascript,Node.js,Npm,Promise,我可以在日志中看到数据,但无法从函数中获取数据 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.
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);
此日志{}使用回调函数
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);
callback(data);
});
function callback(result){
console.log(result);
}
var distance = require('google-distance');
function callbackFunction(result) {
console.log(result); // use the result for manipulation
}
distance.get(
{
index: 1,
origin: '37.772886,-122.423771',
destination: '37.871601,-122.269104'
},
function(err, data) {
if (err) return console.log(err);
callbackFunction(data);
});
console.log(result)
将在回调之前执行。可能重复