Rumah >hujung hadapan web >tutorial js >Bagaimanakah Fungsi Async Mengembalikan Nilai Menggunakan Async-Await?

Bagaimanakah Fungsi Async Mengembalikan Nilai Menggunakan Async-Await?

Barbara Streisand
Barbara Streisandasal
2024-11-11 13:43:02928semak imbas

How do Async Functions Return Values Using Async-Await?

Cara Async Mengembalikan Nilai Menggunakan Async-Await

Tidak seperti fungsi biasa, fungsi async memanfaatkan pemprosesan tak segerak, membolehkan mereka menjeda dan menyambung semula pelaksanaan. Walau bagaimanapun, ini memperkenalkan soalan: bagaimanakah seseorang boleh mendapatkan semula nilai yang dikembalikan?

Pertanyaan Asal

Pada mulanya, pendekatan biasa ialah mencuba:

async function getData() {
    const data = await axios.get('https://jsonplaceholder.typicode.com/posts');
    return data;
}
console.log(getData());

Walau bagaimanapun, pendekatan ini menghasilkan Janji { } output, kerana fungsi async memerlukan pengendalian khas.

Keajaiban Async-Await dalam Async IIFE

Penyelesaian terletak pada membungkus console.log anda dalam Ungkapan Fungsi Segera Dikenakan Asynchronous (async IIFE ). Ia kelihatan seperti ini:

async function getData() {
  return await axios.get('https://jsonplaceholder.typicode.com/posts');
}

(async () => {
  console.log(await getData())
})()

Async-Await with Promises

Memandangkan Axios mengembalikan janji, anda boleh memudahkan fungsi getData dengan meninggalkan async/wait:

function getData() {
  return axios.get('https://jsonplaceholder.typicode.com/posts');
}

Dan kemudian bungkus console.log anda dalam IIFE async sebagai sebelum:

(async () => {
   console.log(await getData())
})()

Kesimpulan

Dengan menggunakan async-await dalam async IIFEs, anda boleh mendapatkan dan log nilai yang dikembalikan oleh fungsi async dengan berkesan, membuka kunci potensi pengaturcaraan tak segerak.

Atas ialah kandungan terperinci Bagaimanakah Fungsi Async Mengembalikan Nilai Menggunakan Async-Await?. 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