.catch
入れ子になった約束でBEFOREとAFTERの違いを理解するのに苦労します。
代替1:
test1Async(10).then((res) => {
return test2Async(22)
.then((res) => {
return test3Async(100);
}).catch((err) => {
throw "ERROR AFTER THEN";
});
}).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});
代替2:
test1Async(10).then((res) => {
return test2Async(22)
.catch((err) => {
throw "ERROR BEFORE THEN";
})
.then((res) => {
return test3Async(100);
});
}).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});
各関数の動作は次の<0
とおりです。number がtest2の場合、test1は失敗し、numberがtest2の場合> 10
、test3は失敗します100
。この場合、test2は失敗しています。
test2Asyncを実行して失敗させたところ、BEFOREとAFTERの両方が同じように動作し、test3Asyncが実行されません。誰かがキャッチを別の場所に置くことの主な違いを私に説明できますか?
各関数でconsole.log('Running test X')
、それが実行されるかどうかを確認するために。
この質問は、私が投稿した以前のスレッドが原因で発生します。。別の問題であり、別のトピックを投稿する価値があると思います。