节点JS访问回调外的值

时间:2016-08-05 08:49:10

标签: javascript node.js asynchronous callback google-distancematrix-api

我在回调之外有一个问题访问值,我有一个像下面的json

[ { Latitude: '3.59288601404616',
    Longitude: '98.6827551573515',
    Latitude1: '3.5828173285855724',
    Longitude1: '98.69136337190866',
    Distance '10127'
  },
   { Latitude: '3.65865664490563',
     Longitude: '98.6652326211333',
     Latitude1: '3.5828173285855724',
     Longitude1: '98.69136337190866',
     Distance: '1836'
  } ]

我已经阅读了很多网站说它不可能从回调中获得价值因为我们必须等到回调完成然后我们才能有一个值并且stackoverflow中的一些问题提供了一些解决方案但是没有人能够工作我

我想要的是在我上面发布的json中添加一个新的json,我想在里面添加Distance json所以我使用regular expression

我想要的是这样的

models.xxxx.findAll({
    where: {
        UserId: req.params.UserId
    },
    attributes: ['Latitude', 'Longitude', [sequelize.literal('(SELECT Latitude FROM `xxxx` WHERE `id` = ' + req.params.MerchantId + ')'), 'Latitude1'],
        [sequelize.literal('(SELECT Longitude FROM `xxxx` WHERE `id` = ' + req.params.MerchantId + ')'), 'Longitude1']
    ]
}).then(function(lists) {

    var json = JSON.parse(JSON.stringify(lists));

    function get_count(item, callback) {
        var array = [];
        for (var i = 0; i < json.length; i++) {
            distance.get({
                    origin: json[i].Latitude1 + ',' + json[i].Longitude1,
                    destination: json[i].Latitude + ',' + json[i].Longitude
                },
                function(err, data) {
                    if (err) {
                        array.push(0);
                    } else {
                        array.push(data.distanceValue);
                    }

                    item.distanceValue = array;
                });
        }
        callback(null, item);
    }
    async.map(json, get_count, function(err, results) {
        console.log(results);
    });
});

和我的代码一样

async.map

我使用git revert -m 1 [copy-paste-the-id-of-the-merge-commit-here] 因为在这个网站上有人发布了它 node-google-distance,我花了很多时间在stackoverflow中搜索但没有找到任何内容

Javascript: return a value to a variable outside of a callback function

NodeJS Can't Access Variable Inside Callback

How to return value from an asynchronous callback function?

NodeJS get async return value (callback)

Site 1

请给我一些提示或一些例子来解决这个问题

0 个答案:

没有答案