ホームページ  >  記事  >  ウェブフロントエンド  >  Await を使用して非同期コールバックを処理するにはどうすればよいですか?

Await を使用して非同期コールバックを処理するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 05:46:27987ブラウズ

How to Handle Asynchronous Callbacks Using Await?

Await による非同期コールバック処理

特定のシナリオでは、次のようなコールバックを使用するときに、次のことが必要になる場合があります。

test() {
  api.on( 'someEvent', function( response ) {
    return response;
  });
}

非同期性を組み込むためです。この関数を非同期にして await を使用するには、まずコールバック関数 (someEvent) が Promise を返すことを確認する必要があります。これは、非同期関数が非同期操作を完了するために Promise に依存しているためです。

api.on() の改訂版:

function apiOn(event) {
  return new Promise(resolve => {
    api.on(event, response => resolve(response));
  });
}

この更新された関数を使用すると、test() を変更できるようになりました。非同期関数になるには:

async function test() {
  return await apiOn( 'someEvent' );
}

ただし、非同期関数は Promise も返すため、test() の実際の結果値は別の非同期関数内で解決できる Promise になります:

async function whatever() {
  // snip
  const response = await test();
  // use response here
  // snip
}

以上がAwait を使用して非同期コールバックを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。