.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);
});
각 함수의 동작은 다음과 같습니다. number가 <0
test2 이면 test1은 실패하고 number가 아니면 > 10
test3은 실패합니다 100
. 이 경우 test2는 실패 만합니다.
나는 실행하고 test2Async를 실패하게 만들려고했는데, BEFORE와 AFTER는 모두 같은 방식으로 작동하고 test3Async를 실행하지 않습니다. 누군가 다른 장소에 캐치를 배치하는 주요 차이점을 설명해 줄 수 있습니까?
각 기능 console.log('Running test X')
에서 실행 여부를 확인합니다.
이 질문은 내가 게시 한 이전 스레드 때문에 발생합니다 중첩 된 콜백을 약속으로 바꾸는 방법? . 나는 그것이 다른 문제이고 다른 주제를 게시 할 가치가 있다고 생각합니다.