Jaka jest różnica pomiędzy:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return "bbb";
})
.then(function(result) {
console.log(result);
});
i to:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return Promise.resolve("bbb");
})
.then(function(result) {
console.log(result);
});
Pytam, gdy dostaję inne zachowanie Używanie usługi Angular i $ http z łańcuchem .then (). Trochę za dużo kodu, stąd pierwszy przykład powyżej.
thenopiekuna, w rzeczywistości jest to kluczowy aspekt specyfikacji obietnic, że możesz to zrobić.
thens - termin „inne języki” oznacza, że thenjest to zarówno a, jak mapi a flatMap.
new Promise((res, rej) => { return fetch('//google.com').then(() => { return "haha"; }) }).then((result) => alert(result));ten kod po prostu zawiesi się (nie zostanie rozwiązany na zawsze). Ale jeśli zmienię return "haha";na, return res("haha");to zadziała i ostrzeże „haha”. Czy funkcja fetch (). Then () nie zawijała już słowa „haha” w obietnicę?
Promise.resolve()W drugim przykładzie nie jest konieczne.