gpt4 book ai didi

javascript - 仅保留解决并忽略被拒绝的 Promise 的值

转载 作者:可可西里 更新时间:2023-11-01 01:51:20 26 4
gpt4 key购买 nike

我有一系列 promise ,每个 promise 都是一个废弃网站的请求。他们中的大多数都解决了,但可能是一两个拒绝的情况,例如该网站已关闭。我想要的是忽略被拒绝的 promise ,只保留已解决的 promise 的值(value)。

Promise.all 不适用于这种情况,因为它需要所有 promise 才能解决。

Promise.some() 不是我想要的,因为我事先不知道有多少 promise 会解决。

Promise.any() 与计数为 1 的 Promise.some() 相同。

这个案子怎么破?我正在使用 Bluebird implementation .

最佳答案

没问题,幸运的是你 bluebird 已经这样做了:

Promise.settle(arrayOfPromises).then(function(results){
for(var i = 0; i < results.length; i++){
if(results[i].isFulfilled()){
// results[i].value() to get the value
}
}
});

您还可以使用较新的 reflect 调用:

Promise.all(arrayOfPromises.map(function(el){ 
return el.reflect();
})).filter(function(p){
return p.isFulfilled();
}).then(function(results){
// only fulfilled promises here
});

关于javascript - 仅保留解决并忽略被拒绝的 Promise 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30309273/

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