ES7の非同期を深く理解する/待つ

元のテキストを参照:

https://blog.csdn.net/sinat_17775997/article/details/60609498

jsでは、Promiseを使用して非同期操作を容易にすることができますが、データAを1回要求し、データの取得後にデータBを要求するなど、2つの非同期操作の間に関係がある場合があります。

上記の問題を解決するために、以前は、データを要求する当時のPromiseで新しいPromiseを要求することができました。これは完全に大丈夫ですが、元のコールバック地獄に戻るかのように、コードは非常にエレガントに見えません。es7は、上記の問題をより簡単に解決するための非同期待機を提供します。最初にコードを見てください


 var test=async function () {
    await new Promise(function(resolve,reject){
        setTimeout(function(){
            console.log('111')
            resolve('111')
        },5000)
    }).then((data)=>console.log('task1 end'))
    await new Promise(function(resolve,reject){
       setTimeout(function(){
           console.log('222')
           resolve('222')
       },5000)
   }).then((data)=>console.log('task2 end'))


}
test()



コード内のテスト関数は非同期で装飾されており、これが非同期メソッドであることを示しています。awaitキーワードは、同期メソッドでのみ使用できます。

awaitキーワードは、非同期コードの実行を待機するために使用できます。実際には、それはpromise解決を待機しています。戻り値は、promise解決が処理された後の最終的な戻り値です。関数はawaitを実行した後、await関数の実行が完了するのを待ってから下方向に実行を継続し、待機中はブロックされず、他の関数は正常に実行できます。

公開された21元の記事 ウォンの賞賛2 ビュー7283

おすすめ

転載: blog.csdn.net/qq_31261131/article/details/81170596