Mengapa async/menunggu Sentiasa Mengembalikan Janji
Apabila bekerja dengan async/menunggu, adalah penting untuk memahami bahawa setiap fungsi async mengembalikan objek Promise . Kata kunci tunggu beroperasi pada Promises, menahan fungsi anda sehingga Promise diselesaikan atau ditolak.
Mengapa console.log() Tidak Berfungsi Terus?
Tidak seperti fungsi segerak , fungsi async tidak segera mengembalikan hasilnya. Sebaliknya, mereka mengembalikan Janji yang, apabila diselesaikan, mengandungi hasilnya. Oleh itu, console.logging hasil daripada fungsi async secara langsung hanya akan mencetak Promise, bukan nilainya.
Menggunakan then() untuk Unwrap the Promise
Untuk mengakses hasil daripada fungsi async, anda mesti sama ada menggunakan kaedah await atau .then(). Kaedah .then() menerima panggilan balik yang mengambil nilai yang diselesaikan sebagai hujah. Dalam kod contoh, kaedah .then() digunakan untuk mencetak objek json.
Why Not Console.log(getJSON())?
Dalam coretan kod yang anda berikan, console.log(getJSON()) akan mengembalikan Janji. Ini kerana penantian tidak merungkai Janji untuk anda. Ia hanya membuatkan fungsi anda menunggu untuk Janji diselesaikan. Anda masih perlu membuka Promise secara manual menggunakan sama ada await atau .then().
Kesimpulan
Untuk menggunakan async/tunggu dengan berkesan, ingat bahawa fungsi async sentiasa mengembalikan Promises . Oleh itu, untuk mengakses hasil fungsi async, anda mesti sama ada menggunakan await atau panggil kaedah .then() pada Promise yang dikembalikan.
Atas ialah kandungan terperinci Mengapa async/menunggu Sentiasa Membalas Janji?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!