JS Q 라이브러리-연기하는 오류를 잡기
-
23-12-2019 - |
문제
내가 발견 Kris 좋지만 수영장은 작 Q 라이브러리고 나는 문제입니다.이 보면 간단한 코드:
function getPromise1() {
var deferred = Q.defer();
setTimeout(function () {
console.log('Promise 1 OK');
deferred.resolve();
}, 1000);
return deferred.promise;
}
function getPromise2() {
var deferred = Q.defer();
setTimeout(function () {
console.log('Promise 2 Failed');
deferred.reject();
}, 1000);
return deferred.promise;
}
getPromise1()
.then(getPromise2())
.fail(function () {
alert('Fail!');
})
.done();
을 기대를 참조하십시오:
Promise 1 OK
Promise 2 Failed
쇼 경"실패!", 하지만 경고하는 결코 보여줍니다.대신에는 경고를 참조하십시오에서 나 콘솔:
[Q] Unhandled rejection reasons (should be empty): ["(no stack) undefined"]
왜 거절은 처리하지 않고 어떻게 관리할 수 있다?
해결책
에 then
기능,당신이 통과해야만 getPromise2
기능의 결과가 아 getPromise2()
getPromise1()
.then(getPromise2) // NOTE: We are not calling it here
.fail(function () {
console.log('Fail!');
})
.done();
제휴하지 않습니다 StackOverflow