Mit node.js Version 7.7.2, würde ich gerne eine asynchrone Funktion und dann eine andere Funktion ausführen, sobald die erste Funktion wie folgt abgeschlossen ist:dann() Callback Feuern vor Versprechen ist in node.js gelöst
function foo() {
return new Promise(function(resolve, reject) {
// Do some async stuff
console.log('foo is about to resolve');
resolve();
});
}
function bar(arg) {
console.log(arg);
}
foo().then(bar('bar has fired'));
Das Problem ist, dass dieses Setup druckt, gefolgt von 'bar hat gefeuert' 'foo ist etwa zu lösen'. Was ich erwarte, ist, dass die Bar auf das Feuer warten wird, bis das Versprechen, das von foo zurückgegeben wurde, gelöst ist. Missverstehe ich, wie then() Callbacks in der Ereignisschleife von node.js in die Warteschlange stellt?
Dank
weil Sie bar fordern .... und die Zuordnung, was es mit dem dann zurück. – epascarello
Haben Sie es versucht, ohne Balken explizit aufzurufen (aka entfernen Sie das '()')? – larz
Wenn Sie 'x (y())' haben, wird 'y' als * first * bezeichnet und sein Rückgabewert wird an' x' übergeben. Das hat nichts mit '.then', Versprechungen oder Ereignisschleifen zu tun. Argumente werden * immer * eifrig ausgewertet. –