前提
Promise.allの結果を変数に入れ、rejectをcatchしようとすると、
Promiseがpendingにならないのですが、原因が分かりません。
よろしくお願いします。
発生している問題・エラーメッセージ
・変数にthenを付けた場合 Promise {<rejected>: 'err2'} [[Prototype]]: Promise [[PromiseState]]: "rejected" [[PromiseResult]]: "err2" ・変数に結果を入れなかった場合 Promise {<pending>} [[Prototype]]: Promise [[PromiseState]]: "fulfilled" [[PromiseResult]]: undefined
該当のソースコード
JavaScript
1function p1(){ 2 const promise1 = new Promise((resolve, reject) => { 3 setTimeout(() => { 4 console.log("promise1"); 5 reject("err1"); 6 }, 2000) 7 }); 8 return promise1; 9} 10 11function p2(){ 12 const promise2 = new Promise((resolve, reject) => { 13 console.log("promise2"); 14 reject("err2"); 15 }); 16 return promise2; 17} 18 19 20 21const result = Promise.all([p1(), p2()]); 22result.then(() => { 23 console.log("done"); 24}) 25.catch(() => { 26 console.log("error"); 27 console.log(result); 28}); 29 30 31
試したこと
以下のコードでは正常に動作します。
const result = Promise.all([p1(), p2()]) .then(() => { console.log("done"); }) .catch(() => { console.log("error"); console.log(result); });
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
https://teratail.com/questions/c0d8zvihvul732
では解決できないですか?

回答2件
あなたの回答
tips
プレビュー