例えば、以下の3つの関数があります。
関数A(){ B(); C(); } 関数b(){ setTimeout(()=> { console.log( 'B') }、2 * 1000)。 }
関数C(){ setTimeout(()=> { console.log( 'C') }、1 * 1000)。 }
A()//出力分布:C、B
我々は彼らが相出力Bを注文してみましょう場合は、setTimeoutメソッド関数は非同期イベントであるため、Cは、非常に簡単ではありませんので、ES6はメソッドの非同期を提供してこの問題を解決するための約束を待って、
以下のコードを書き換え
非同期関数A(){ Bを待ちます() 待つC() } 関数b(){ 返す新しい約束((解決、拒否)=> { setTimeout(()=> { console.log( 'B') 解決(1) }、2 * 1000)。 }) } 関数C(){ 返す新しい約束((解決、拒否)=> { console.log( 'C') 解決(2) }) } ()//出力:A、B、C
非同期ES6方法は非常に強力な提供してお待ちしておりますが、約束して、特定の非同期は待つの彼の本当の能力を示すために使用し、Baiduのを見ることができます使用を約束します
参考リンク:https://www.jianshu.com/p/73b070eebf50