-1
node.jsバージョン7.7.2を使用して、私は非同期関数を実行してから、最初の関数が完了したら別の関数を実行したいと思います。node.jsで約束が解決される前にコールバックが呼び出される
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'));
問題は、このセットアッププリント「fooが解決しようとしている」に続く「バーが起動している」ということです。私が期待しているのは、fooによって返された約束が解決されるまで、バーは発射を待つことです。私はthen()がnode.jsイベントループのコールバックをどのようにキューに入れるのか誤解していますか?コメントで述べたように
おかげ
あなたがバーを呼び出して....そしてそれは、その後に戻って何を割り当てているので。 – epascarello
明示的にバーを呼び出さずに試しましたか(別名 '()')? – larz
'x(y))'があるときはいつでも、 'y'は* first *と呼ばれ、その戻り値は' x'に渡されます。これは '.then'、約束事、イベントループとは関係ありません。引数は常に*熱心に評価されます。 –