2015-12-13 2 views
-1

я следующее обещание возвращающих функции:Остановить выполнение кода при отклонении обещание

function createJourney() { 
    return new Promise((resolve, reject) => { 
    // code ... 
    doOperation((err, data) { 
     // code ... 
     return reject('We need to exit now!') 
    }); 

    // ---> Why is code stil executing here? <--- 

    }) 
} 

Почему код, выполняемый ниже отклонять? При отказе я хочу остановить выполнение функции createJourney.

Я использую обещание Bluebird.

ответ

1

Представьте

return new Promise((resolve, reject) => { 
    doThing1() 
    doOperation(..); 
    doThing2() 
}) 

нет никаких причин, почему doThing2() не должна выполняться в зависимости от того, что происходит внутри doOperation()

doOperation, вероятно, начать асинхронную операцию и doThing2 будет называться задолго до того, reject вызывается в вашем примере.

+0

Я вижу это, спасибо! – nodesto

Смежные вопросы