Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mendapatkan Nilai daripada Fungsi Async dengan Async-Await dalam JavaScript?

Bagaimana untuk Mendapatkan Nilai daripada Fungsi Async dengan Async-Await dalam JavaScript?

Barbara Streisand
Lepaskan: 2024-11-12 04:17:02
asal
758 orang telah melayarinya

How to Retrieve Values from Async Functions with Async-Await in JavaScript?

Cara Mendapatkan Nilai daripada Fungsi Async dengan Async-Await

Dalam JavaScript, memahami cara mengembalikan nilai daripada fungsi async adalah penting. Mari kita mendalami senario:

Senario:

Pertimbangkan coretan kod berikut:

1

2

3

4

5

6

const axios = require('axios');

async function getData() {

    const data = await axios.get('https://jsonplaceholder.typicode.com/posts');

    return data;

}

console.log(getData());

Salin selepas log masuk

Masalah:

Jika anda melaksanakan kod ini, anda akan menemui mesej "Janji { }" dalam konsol. Daripada mengembalikan data yang dijangkakan, kami menerima janji yang belum selesai ini. Sebabnya ialah kami cuba mengakses hasil fungsi tak segerak di luar konteks tak segerak.

Penyelesaian:

Untuk menangani isu ini, kami mesti mematuhi peraturan bahawa operasi tak segerak hanya perlu ditunggu dalam konteks tak segerak yang lain. Dalam kes kami, kami boleh mencapai ini dengan merangkum pernyataan console.log() dalam IIFE async (ungkapan fungsi yang digunakan serta-merta):

1

2

3

4

5

6

7

async function getData() {

  return await axios.get('https://jsonplaceholder.typicode.com/posts');

}

 

(async () => {

  console.log(await getData())

})()

Salin selepas log masuk

Ini memastikan bahawa pernyataan console.log() hanya dilaksanakan sebaik sahaja fungsi GetData() telah menyelesaikan operasi tak segeraknya dan mengembalikan data.

Sebagai alternatif:

Jika axios mengembalikan Promise, seperti yang berlaku dalam kod anda, kami boleh memudahkan kod dengan mengalih keluar async dan menunggu dari getData(). Kod itu kemudiannya menjadi:

1

2

3

4

5

6

7

function getData() {

  return axios.get('https://jsonplaceholder.typicode.com/posts');

}

 

(async () => {

  console.log(await getData())

})()

Salin selepas log masuk

Ini masih mencapai hasil yang sama dengan menunggu fungsi getData() dalam konteks tak segerak.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai daripada Fungsi Async dengan Async-Await dalam JavaScript?. 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