私の質問は、どのようにしてエラーが一連の継続を介してキャッチ継続に伝播するかということです。ES6プロミスエラー処理
は、私たちが拒否約束を持って行1の後
Promise.reject(new Error("some error"))
.then(v => v + 5)
.then(v => v + 15)
.catch(error => console.log(error));
を考えます。継続が呼び出されると、.then(v => v + 5)は元の拒否された約束がそのまま返されます。同じことが3行目に当てはまります。したがって、継続は実行されず、キャッチ継続に達すると、引き続きキャッチ継続に渡される結果と同じ元のオブジェクトが残ります。
この仮定は正しいですか?
はい、それは正しい –
拒否された約束は、次のエラーハンドラに渡されます( 'catch'または' then(...、handler) ')。その間にあるすべてのものはスキップされます。 – deceze
@torazaburoおそらく、「間にあるすべてのonFulfilmentハンドラはスキップされます(拒否された約束が得られます)」はさらに正確でしょうか? :) – deceze