Rumah  >  Artikel  >  hujung hadapan web  >  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
Barbara Streisandasal
2024-11-12 04:17:02680semak imbas

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:

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

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

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

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

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:

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

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

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!

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