Bagaimana Mengendalikan Panggilan Balik Asynchronous Menggunakan Await?

Mary-Kate Olsen
Lepaskan: 2024-10-30 05:46:27
asal
977 orang telah melayarinya

How to Handle Asynchronous Callbacks Using Await?

Pengendalian Panggilan Balik Tak Segerak dengan Menunggu

Dalam senario tertentu, semasa menggunakan panggilan balik seperti:

test() {
  api.on( 'someEvent', function( response ) {
    return response;
  });
}
Salin selepas log masuk

anda mungkin memerlukan untuk menggabungkan ketidaksegerakan. Untuk menjadikan fungsi ini tidak segerak dan penggunaan menanti, anda mesti terlebih dahulu memastikan bahawa fungsi panggil balik (someEvent) mengembalikan Janji. Ini kerana fungsi async bergantung pada Promises untuk menyelesaikan operasi tak segerak.

Versi disemak api.on():

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

Menggunakan fungsi yang dikemas kini ini, anda kini boleh mengubah suai test() menjadi fungsi tak segerak:

async function test() {
  return await apiOn( 'someEvent' );
}
Salin selepas log masuk

Walau bagaimanapun, fungsi tak segerak juga mengembalikan Promises, jadi nilai hasil sebenar test() ialah Janji yang boleh diselesaikan dalam fungsi tak segerak yang lain:

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

Atas ialah kandungan terperinci Bagaimana Mengendalikan Panggilan Balik Asynchronous Menggunakan Await?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan