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)
将在回调之前执行。可能重复