Colocação das capturas ANTES e DEPOIS
Tenho problemas para entender a diferença entre colocar.catch
Antes e depois, em uma promessa aninhada.
Alternativa 1:
test1Async(10).then((res) => {
return test2Async(22)
.then((res) => {
return test3Async(100);
}).catch((err) => {
throw "ERROR AFTER THEN";
});
}).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});
Alternativa 2:
test1Async(10).then((res) => {
return test2Async(22)
.catch((err) => {
throw "ERROR BEFORE THEN";
})
.then((res) => {
return test3Async(100);
});
}).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});
O comportamento de cada função é o seguinte, test1 falha se número for<0
test2 falha se o número for> 10
e test3 falhará se o número não for100
. Nesse caso, test2 está apenas falhando.
Tentei executar e fazer com que test2Async falhasse, ANTES e DEPOIS, se comporta da mesma maneira e isso não está executando o test3Async. Alguém pode me explicar a principal diferença para colocar capturas em lugares diferentes?
Em cada função euconsole.log('Running test X')
para verificar se é executado.
Esta questão surge por causa do tópico anterior que publiqueiComo transformar retorno de chamada aninhado em promessa?. Eu acho que é um problema diferente e vale a pena postar outro tópico.