gpt4 book ai didi

javascript - 循环 javascript promise 追加到数组

转载 作者:行者123 更新时间:2023-11-28 17:34:11 25 4
gpt4 key购买 nike

美好的一天,下面我有

    var request = require('request');
getFood = function(lst){
return new Promise(function(resolve, reject){
//console.log(lst)
request('https://api.jamesoff.net/recipe', function (error, response, recipe) {
lst.push(JSON.parse(recipe))
resolve(lst);
})
});
}


getFood([]).then(function(data){
for(var i = 0; i < 3; i++){
getFood(data)
}
return(data);
}).then(function(data){
console.log(data)
})

我的目标是通过使用 promise 链将三个食谱使用循环放入数组中。我只得到一件元素,并且我知道为什么会发生这种情况,但是我无法全神贯注于实现目标的程序。我可以得到代码解释吗?

最佳答案

问题是你的 getFood 调用在循环中。如果您要循环 Promise,最好的方法是使用 Promise.all()

示例:

var promiseArray = [];
for(var i = 0; i < 3; i++){
promiseArray.push(getFood(data))
}
Promise.all(promiseArray).then(function(values) {
// values is array of resolve values in the order that promises were pushed into the array
});

这会按照调用顺序解决 promise ,应该有助于解决您的问题。

关于javascript - 循环 javascript promise 追加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49545680/

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