2017-01-31 18 views
1

今日私は多くの例を見ました。彼らは、次のコードは、チェーン内で実行されなければならないことを示唆しているように見える:約束が完了するのを待たずに

let f =() => { 
    return new Promise((res, rej) => { 
     console.log('entering function'); 
     setTimeout(() => { 
      console.log('resolving'); 
      res() 
     }, 2000) 
    }); 
}; 

Promise.resolve() 
    .then(f()) 
    .then(f()); 

の予想される出力は次のようになります。

entering function 
resolving 
entering function 
resolving 

しかし、そうではありません。出力は

entering function 
entering function 
resolving 
resolving 

です。理由はわかりません。どんな助けでも大歓迎です。

答えて

8

then(f)代わりのthen(f())

then機能を期待してみてください。

あなたも、その後 `呼び出し、then(()=>f())

+1

追加ヘルプを行うことができます(fは())'すぐ –

+0

それをされたことの関数を呼び出します。ありがとうございました – Adam

関連する問題