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 サイトの他の関連記事を参照してください。