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?
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 {
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()) })()
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()) })()
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!