nodejs では、await を使用して、非ブロック的な方法で実行を一時停止し、Promise の非同期リクエストを待機し、非同期メソッドの実行が完了するのを待機します。await は、非同期関数で使用して、非同期関数の戻り値 Value; Promise は失敗した拒否を返し、拒否値はスローされ、「try/catch」によって取得できます。
この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。
Async/await の使用法は Node.js 7 の夜に導入されましたが、async/await 関数を正式にアクティブ化できるのは Node.js 8 とJavaScript V8。
非同期/待機とは何ですか?過去に Promise を使用して非同期操作を実装する方法。次のケースは、Promise と Fetch API を使用してデータをキャプチャする方法を示しています:
function getTrace () { return fetch('https://www.jdon.com', { method: 'get' }) } getTrace() .then() .catch()
Using async/await, you can to stopexecuts in non-blocking way and wait Promise が失敗した拒否を返した場合、拒否値がスローされ、try/catch で取得できます。上記のケースは、async/await を使用して次のように記述できます。
function async getTrace () { let pageContent try { pageContent = await fetch('https://www.jdon.com', { method: 'get' }) } catch (ex) { console.error(ex) } return pageContent } getTrace() .then()
Node.js で async/await を使用し、setimeout を使用して関数の実行を遅延させ、async/await を使用するケースを見てみましょう。 encapsulation:
// app.js const timeout = function (delay) { return new Promise((resolve, reject) => { setTimeout(() => { resolve() }, delay) }) } async function timer () { console.log('timer started') await Promise.resolve(timeout(100)); console.log('timer finished') } timer()
この app.js ファイルを作成して実行します:
node app.js
実行できない場合は、nodejs がナイトリー バージョンである可能性があります。公式には async/await をサポートしていません。コマンド ラインは次のようになります:
node --harmony-async-await app.js
推奨学習: 「nodejs ビデオ チュートリアル 」
以上がNodejsでのawaitの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。