我想对数组中的每一个元素调用fetch,但是我想一次只调用一个,只有当前一个元素完成后才开始一个新的元素。***有没有一种方法可以只用promise来解决这个问题?***我用递归解决了这个问题,但是我觉得我的解决方案有点傻。我的解决方案如下:
//call fetch once for each word in the array
let promises = "words to fetch from this array".split(' ')
fetchCall(promises.shift())
function fetchCall(word) {
return new Promise(function(resolve, reject) {
console.log('this is simulating a fetch call')
setTimeout(function() {
return resolve('resolved')
}, 1000)
}).then(function() {
//only make the next fetch call when the previous one has finished
if (promises.length > 0) {
fetchCall(promises.shift())
}
})
}
1条答案
按热度按时间cbwuti441#
我可爱的async for each
然后为阵列调用
asyncForEach
或者你可以使用Promise.all