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.
then
opiekuna, w rzeczywistości jest to kluczowy aspekt specyfikacji obietnic, że możesz to zrobić.
then
s - termin „inne języki” oznacza, że then
jest to zarówno a, jak map
i 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.