Code:Versprechen nicht warten, bevor zu lösen nächsten dann
var x = new Promise((resolve, reject) => {
setTimeout(function() {
console.log('x done');
resolve()
}, 1000);
});
Promise.resolve().then(x).then((resolve, reject) => {
console.log('all done');
});
Ausgang:
all done
x done
Erwartete Ausgabe:
x done
all done
Warum das ist Versprechen x
nicht warten auf Auflösung vor dem Aufruf der nächsten then
Rückruf?
JSFiddle: https://jsfiddle.net/puhbqtu0/1/
'then' erwartet eine Funktion als Argument, kein Versprechen. – Bergi
weil 'then()' benötigt eine Funktion als Argument, kein Versprechen. Also wird das nächste 'then' ausgeführt, nachdem x ausgeführt wurde, nicht aufgelöst. –
Sie sollten 'x' in' then' zurückgeben: 'then (() => x)'. – alexmac