gpt4 book ai didi

javascript - Lodash map 中的 promise

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:45 25 4
gpt4 key购买 nike

我正在使用 Lodash 来映射数组。在循环中, promise 从外部 API 获取某些内容。

var array = _.map(data, function (d, i) {
getFromMyAPI(d[4])
.then(function (results) {
return {
id: d[0],
zoneLat: d[2],
zoneLon: d[3],
wifiLat: results.a,
wifiLon: results.b
};
});
});

但是,如果我这样做

console.log(array);

它当然显示了一个空数组。映射完成后,如何获取该数组的内容?

最佳答案

我打赌您错过了 getFromMyApi 调用需要迭代中的参数这一事实...让我们假设这是真的。

您应该将此数组视为 Promise 的结果,它以某种方式链接到 getFromMyAPI 调用的所有结果。不知何故,最好使用一些高级的 Promise 库来提供对像 Bluebird 这样的 Promise 进行 Map/Reduce 分类的功能版本。

使用 bluebird 的示例:

var Promise = require('bluebird');
return Promise.map(data, function(d,i) {
return getFromMyApi(arguments, d).then(function(r) {
return {
id: d[0],
zoneLat: d[2],
zoneLon: d[3],
wifiLat: r.a,
wifiLon: r.b
};
})
}).then(function(array) {
console.log("#2", array);
});

关于javascript - Lodash map 中的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36349191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com