Nodejs では、await を使用して、非ブロック的な方法で実行を一時停止し、Promise の非同期リクエストを待機し、非同期メソッドの実行が完了するのを待ちます。await は、非同期関数の戻り値を待機するために非同期関数で使用できます。 ; 約束の戻り値 拒否が失敗した場合、拒否値がスローされ、「try/catch」によって取得できます。
この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。
async/await の使用は Node.js 7 night で導入されましたが、async/await 関数を正式にアクティブ化できるのは Node.js 8 と Javascript V8 でのみです。
非同期/待機とは何ですか?過去に Promise を使用して非同期操作を実装する方法 以下の例は、Promise と Fetch API を使用してデータを取得する方法を示しています。
function getTrace () { return fetch('https://www.jdon.com', { method: 'get' }) } getTrace() .then() .catch()async/await を使用すると、非ブロック的な方法で実行を一時停止し、結果が返されるのを待つことができます。Promise が失敗した拒否を返した場合、拒否値がスローされ、try/catch で取得できます。上記のケースは、async/await を使用して次のように記述できます。
function async getTrace () { let pageContenttry { 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 カプセル化を使用する場合を見てみましょう。
// app.jsconst timeout = function (delay) { return new Promise((resolve, detect) => { setTimeout(() => {solve() }, late) }) } async function timer () { console.log ('タイマー開始') await Promise.resolve(timeout(100)); console.log('タイマー終了') } timer()app.js ファイルを作成して実行します。
ノードapp.js
実行できない場合は、nodejs がナイトリー バージョンであり、async/await を正式にサポートしていない可能性があります。コマンド ラインは次のようになります。
ノード --harmony-async-await app.js
推奨される学習: 「nodejs ビデオ チュートリアル」
上記は、nodejs での await の使用方法の詳細です。詳細については、このサイトの他の関連記事に注目してください。