Rumah  >  Artikel  >  hujung hadapan web  >  Apakah Nilai Pulangan Fungsi Async dan Bagaimana Ia Berkaitan dengan Janji?

Apakah Nilai Pulangan Fungsi Async dan Bagaimana Ia Berkaitan dengan Janji?

DDD
DDDasal
2024-10-18 10:35:29421semak imbas

What Are the Return Values of Async Functions and How Do They Relate to Promises?

Fungsi Async: Memahami Nilai Pulangan dan Janji

Walaupun fungsi async membenarkan anda menulis kod dalam gaya segerak, ia sememangnya mengembalikan janji. Ini boleh menyebabkan kekeliruan mengenai nilai pulangan kod anda.

Janji: Gambaran Keseluruhan Pantas

Janji ialah objek yang mewakili penyiapan atau kegagalan operasi tak segerak. . Mereka menyediakan dua kaedah utama:

  • kemudian(selesaikan, tolak): Memproses hasil operasi apabila berjaya (selesaikan) atau mengesan ralat (tolak).
  • tangkap( tolak): Mengendalikan ralat secara tidak segerak.

Fungsi dan Janji Async

Fungsi Async sentiasa mengembalikan janji, walaupun anda tidak menggunakan kata kunci tunggu secara eksplisit . Janji ini mewakili hasil operasi async. Jika fungsi melemparkan ralat, janji akan menolak dengan ralat itu.

Penggunaan:

Janji dengan Fungsi Panggilan Balik:

<code class="javascript">const myAsyncFunction = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Asynchronous value');
    }, 1000);
  });
};

myAsyncFunction()
  .then(result => {
    console.log(`Callback Result: ${result}`);
  })
  .catch(error => {
    console.log(`Error: ${error}`);
  });</code>

Janji dengan Async/Await:

<code class="javascript">async function myAsyncFunction() {
  const result = await new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Asynchronous value');
    }, 1000);
  });
  return result;
}

myAsyncFunction()
  .then(result => {
    console.log(`Await Result: ${result}`);
  })
  .catch(error => {
    console.log(`Error: ${error}`);
  });</code>

Dalam contoh ini, myAsyncFunction mengembalikan janji yang diselesaikan dengan nilai 'Asynchronous value' selepas kelewatan 1 saat . Kaedah then dan catch mengendalikan keadaan yang diselesaikan atau ditolak, masing-masing.

Mengembalikan Janji

Jika anda ingin mengembalikan janji itu sendiri tanpa sebarang pengubahsuaian, anda boleh dengan mudah tulis:

<code class="javascript">const myAsyncFunction = () => {
  return new Promise(...);
};</code>

Mengembalikan Nilai Yang Diubahsuai

Untuk mengembalikan nilai yang diubah suai daripada fungsi async, anda perlu mengendalikan hasil Promise dalam kaedah itu dan kembalikan nilai yang diubah suai. Contohnya:

<code class="javascript">async function myAsyncFunction() {
  const result = await new Promise(...);
  return result.toUpperCase();
}</code>

Fungsi ini mengembalikan janji yang diselesaikan dengan versi huruf besar hasilnya.

Atas ialah kandungan terperinci Apakah Nilai Pulangan Fungsi Async dan Bagaimana Ia Berkaitan dengan Janji?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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