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

DDD
Lepaskan: 2024-10-18 10:35:29
asal
523 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan