Callbacks promissores retornando promessas
Com relação a essas duas grandes fontes:NZakas - retornando promessas em cadeias de promessas ePromessas MDN, Gostaria de perguntar o seguinte:
Cada vez que retornamos um valor de um manipulador de cumprimento de promessas, como esse valor é passado para a nova promessa retornada desse mesmo manipulador?
Por exemplo,
let p1 = new Promise(function(resolve, reject) {
resolve(42);
});
let p2 = new Promise(function(resolve, reject) {
resolve(43);
});
let p3 = p1.then(function(value) {
// first fulfillment handler
console.log(value); // 42
return p2;
});
p3.then(function(value) {
// second fulfillment handler
console.log(value); // 43
});
Neste exemplo,p2
é uma promessa.p3
também é uma promessa originária dep1
manipulador de cumprimento. Contudop2 !== p3
. Em vez dep2
de alguma forma magicamente resolve43
(como?) e esse valor é passado parap3
manipulador de cumprimento. Até a frase aqui é confusa.
Você poderia me explicar o que exatamente está acontecendo aqui? Estou totalmente confuso com esse conceito.