문제

내가 발견 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();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top