我有以下代碼await doAllCats();await doAllDogs();console.log("Finished processing Cats and Dogs ")function doAllCats() {
let promiseArray = [];
for(let cat of cats) {
promiseArray.push(doOneCat(cat));
}
return Promise.all(promiseArray);}function doOneCat(cat) {
let promise = doSomeAsyncStuffWithACat(cat);
promise.catch((err)=> {
console.error("there was a problem with "+cat+" but processing should continue as normal for the other cats and dogs");
})
return promise; }所有的貓和狗都成功的時候工作正常。但是,有時貓會失敗,當發生這種情況時,我會在最頂層獲得一個例外。處理貓失敗的代碼在內部doOneCat并且正確執行。然而,失敗的承諾仍然在promiseArray,所以我得到一個不成熟的“完成”。Promise.all在第一個例外中防止拒絕的最簡單/規范方法是什么?
什么是防止Promise.all拒絕第一個錯誤的規范方法?
慕絲7291255
2019-04-17 18:15:24