【问题标题】:Lambda function returns null with google-distance-matrix (NodeJS)Lambda 函数使用 google-distance-matrix (NodeJS) 返回 null
【发布时间】:2019-12-11 12:47:15
【问题描述】:

我需要在 NodeJS Lambda 函数中使用 google-distance-matrix API 计算距离,但在我运行该函数时它只返回 null。

var distance = require('google-distance-matrix');
distance.key('xxxxxxxx');

var origins = ['San Francisco CA'];
var destinations = ['New York NY', '41.8337329,-87.7321554'];

var dist = function() {
    distance.matrix(origins, destinations, function (err, distances) {
        if (!err) {
            return {
                statusCode: 200,
                body: distances
            }
        }
    });
}

exports.handler = async (event) => {
    return dist()
};

【问题讨论】:

    标签: javascript node.js amazon-web-services lambda


    【解决方案1】:

    您没有正确使用回调,也没有将 distance.matrix 回调中的值返回到 dist 函数中。

    你需要做的是:

    var distance = require('google-distance-matrix');
    distance.key('xxxxxxxx');
    
    var origins = ['San Francisco CA'];
    var destinations = ['New York NY', '41.8337329,-87.7321554'];
    
    var dist = function() {
      return new Promise((resolve, reject) => {
          distance.matrix(origins, destinations, function (err, distances) {
            if (err) reject(err);
            resolve({
              statusCode: 200,
              body: distances
            });
          }
        });
      });
    }
    
    exports.handler = async (event) => {
        return await dist();
    };
    

    【讨论】:

    • 我不得不删除一个大括号,但感谢它现在可以使用
    猜你喜欢
    • 2016-06-08
    • 1970-01-01
    • 2014-10-08
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    相关资源
    最近更新 更多