Я упростил сценарий в приведенном ниже коде, потому что у меня нет места для объяснения моего варианта использования, но в основном я бросаю сообщение об ошибке " поймать "блок обещания. Как я могу получить ошибку, чтобы получить передачу из этого блока catch (в приведенном ниже примере я хочу, чтобы сообщение об ошибке сообщалось из внешнего блока catch из «try/catch», который я завернул с моим кодом):«throw new Error()», пойманный в контексте блока catch
var p = new Promise(function(resolve, reject) {
setTimeout(function() {
reject();
}, 1000);
});
try {
p.then(function() {
console.log('promise resolved');
}).catch(function() {
throw new Error('I want to get out of this catch block!');
});
} catch (err) {
console.log('I want to report the error from here' + err.message);
}
'try..catch' является синхронным заявлением, вы не можете этого сделать. Однако вы можете связать другой '.catch()' – elclanrs
. Я отбросил ваши последние изменения. Вы задали понятный вопрос, получили ответ, который вы приняли. Сообщество не видит в хороших легких радикальных изменениях вопроса, когда есть ответы, которые фактически решают проблему, выраженную в вопросе, и особенно когда есть * принятый * ответ. Кроме того, новый вопрос является дубликатом [этого] (http://stackoverflow.com/questions/26571328/how-do-i-properly-test-promises-with-mocha-and-chai). Просто верните обещание: Мокка примет отказ как провал. – Louis
мой плохой. Я думал, что мне все еще нужен ответ, но потом я понял ответ. – mags