非同期関数は非同期プログラミングの構文究極のソリューションです、それは私たちが非同期コード書面を同期させることができますので、コードはもはやネストされているコールバック関数、コードが明確になります。
基本的な文法:
CONST FN =非同期()=> {} 非同期関数fn(){}
//非同期
1. //通常の関数定義プラスasynvキーワードの前に、一般的な機能は、非同期関数となります
//関数のデフォルトの戻り値は、非同期2.約束の対象であります
内部非同期機能で// 3.キーワードがスローエラーをスロー
非同期関数内で4 //戻り、キーワードの結果を返し、結果が代わりにreturnキーワードの約束方法の決意を、約束のオブジェクトにラップされます。
//キーワードを待ちます
// 1.それは非同期関数にのみ表示されます
// 2.約束の背後に、書き込み、オブジェクトのみを書くことを約束することができますAPIの他の種類のを待つ許容ではありません。
あなたが結果を返すことを約束するまで// 3.のawaitキーワードがダウン非同期関数の実行を中断しています。
例:
1つの非同期関数F1(){ 2 リターン 'F1' 3 } 4 5非同期関数F2(){ 6 復帰 'F2' 7 } 8 9非同期関数F3(){ 10 リターン 'F3' 11 } 12 13非同期関数実行( ){ 14 LET r1が= F1()待つ 15 R 2が= LET (F2を待つ) 16 LETのR 3は= (F3を待つ) 17 にconsole.log(R1) 18を console.log(R2) 19 にconsole.log(R3) 20 } 21 22ラン()
例2:
1 CONSTザは、FS =( 'FS'を必要とする) 2 // API関数非同期の変換、それは非同期関数の構文をサポートするために、約束のオブジェクトを返す 。3 CONST =( 'utilの'必要promisify .promisify) 。4 // 既存promisifyを改造する方法を呼び出しますその戻り約束オブジェクトを可能に非同期API、 5 CONST = readFileのpromisify(fs.readFile) 。6 。7非同期関数RUN(){ 8 ザはreadFileのR1 =( './ 1.TXT'、 'UTF8'を待ってみましょう) 。9 せのawait R2 = readFileの( './ 2.txt'、 'UTF8' ) 10 せザが待つreadFileのR3 =( './ 3.txt'、 'UTF8' ) 。11 にconsole.log(R1) 12は、 コンソール。 ログ(R2) 13 console.log(R3) 14 } 15 16ラン()