Rumah > Artikel > hujung hadapan web > Bagaimana untuk Mengakses Nilai Pulangan daripada Fungsi Async dengan async-await?
Memulangkan Nilai daripada Fungsi Async dengan async-await
Apabila memanggil fungsi tak segerak menggunakan sintaks async-wait, mengakses nilai pulangan secara terus boleh mengakibatkan Janji yang belum selesai. Artikel ini meneroka cara menyelesaikan isu ini.
Menunggu Nilai Di Luar Skop Async
Percubaan awal anda untuk log nilai pulangan fungsi getData tidak berjaya kerana anda cuba menunggu nilai di luar skop tak segerak. Sintaks async-wait hanya boleh digunakan dalam fungsi atau blok tak segerak (ditandakan dengan kata kunci async).
IIFE Asynchronous to Wrap Logging
Untuk menyelesaikan isu ini, anda boleh membungkus pernyataan console.log anda dalam Ungkapan Fungsi Segera Diminta (IIFE) asynchronous seperti ini:
(async () => { console.log(await getData()); })();
Ini memastikan pengelogan dilakukan dalam konteks tak segerak, membolehkan sintaks menunggu berfungsi dengan betul.
Mengabaikan Async/Await for Promise Returns
Dalam contoh anda, axios mengembalikan Janji. Dalam kes sedemikian, anda boleh memudahkan kod anda dengan meninggalkan sintaks async/menunggu untuk fungsi getData anda dan menggunakan objek Promise secara langsung:
function getData() { return axios.get('https://jsonplaceholder.typicode.com/posts'); }
Kemudian, anda masih boleh menggunakan IIFE tak segerak untuk log hasil sebagai sebelum:
(async () => { console.log(await getData()); })();
Dengan mengikuti pendekatan ini, anda boleh memastikan bahawa nilai dikembalikan daripada fungsi tak segerak menggunakan async-await diakses dan dikendalikan dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Nilai Pulangan daripada Fungsi Async dengan async-await?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!