Qual è la differenza tra:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return "bbb";
})
.then(function(result) {
console.log(result);
});
e questo:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return Promise.resolve("bbb");
})
.then(function(result) {
console.log(result);
});
Sto chiedendo come sto ottenendo un comportamento diverso Usando il servizio Angular e $ http con il concatenamento .then (). Un po 'troppo di codice, quindi prima l'esempio sopra.
then
gestore, in effetti è un aspetto chiave delle specifiche delle promesse che puoi farlo.
then
s nidificati in modo arbitrario - il termine "altre lingue" per questo è che then
sia a map
che a flatMap
.
new Promise((res, rej) => { return fetch('//google.com').then(() => { return "haha"; }) }).then((result) => alert(result));
questo codice si bloccherà (non risolto per sempre). Ma se cambio return "haha";
a return res("haha");
allora funzionerà e avviserà "haha". Fetch (). Then () non ha già avvolto "haha" in una promessa risolta?
Promise.resolve()
secondo esempio non è necessario.