首頁  >  文章  >  web前端  >  如何使用Await處理非同步回調?

如何使用Await處理非同步回調?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-30 05:46:27921瀏覽

How to Handle Asynchronous Callbacks Using Await?

使用Await 進行非同步回調處理

在某些情況下,使用以下回呼時:

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

您可能需要合併非同步性。要讓這個函數非同步並使用await,首先必須確保回呼函數(someEvent)回傳一個Promise。這是因為非同步函數依賴 Promises 來完成非同步操作。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn