Was ist der Unterschied zwischen:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return "bbb";
})
.then(function(result) {
console.log(result);
});
und das:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return Promise.resolve("bbb");
})
.then(function(result) {
console.log(result);
});
Ich frage, wie ich ein anderes Verhalten bekomme. Verwenden des Angular- und $ http-Dienstes mit Verkettung .then (). Ein bisschen zu viel Code, daher zuerst das obige Beispiel.
then
daran, ein Versprechen von einem Handler zurückzugeben. Tatsächlich ist es ein Schlüsselaspekt der Versprechensspezifikation, dass Sie dies tun können.
then
s funktioniert - der Begriff "andere Sprachen" then
lautet sowohl a map
als auch a flatMap
.
new Promise((res, rej) => { return fetch('//google.com').then(() => { return "haha"; }) }).then((result) => alert(result));
Dieser Code bleibt einfach hängen (nicht für immer gelöst). Aber wenn ich return "haha";
zu return res("haha");
dann wechsle , wird es funktionieren und "haha" alarmieren. Hat der fetch (). Then () nicht schon "haha" in ein gelöstes Versprechen eingewickelt?
Promise.resolve()
im zweiten Beispiel ist unnötig.