Вы должны вернуть внутреннее обещание для распространения throw
.Внутренние обещания добавляются в цепочку только тогда, когда вы возвращаете их из обработчика .then()
.Когда вы делаете это, они вставляются в цепочку, и их разрешенное или отклоненное состояние - это то, что получает цепочка внешних обещаний.Без return
внутренняя цепочка обещаний - это просто собственная независимая цепочка обещаний, которая вообще не связана с внешней.
Итак, измените это:
this.methodOne().then( responseOne =>{
this.methodTwo(responseOne ).then( responseTwo =>{
console.log(responseTwo );
}).catch(err => {
// send err to last catch
throw err;
})
}).catch(err => {
// Show err one or two
console.log(err)
})
наэто:
this.methodOne().then(responseOne => {
// ADD return on next line to return inner promise
// to add this inner promise chain to the outer chain
return this.methodTwo(responseOne ).then(responseTwo => {
console.log(responseTwo );
return responseTwo; // return this so it becomes the resolved
// value of parent chain too
}).catch(err => {
// send err to last catch
throw err;
});
}).catch(err => {
// Show err one or two
console.log(err)
})