Rumah >hujung hadapan web >tutorial js >Adakah Fungsi Async Sentiasa Mengembalikan Janji, Walaupun Tanpa Pulangan Jelas?
Pulangan Tersirat Janji dalam Fungsi Async
Bertentangan dengan andaian bahawa fungsi async mengembalikan nilai ekspresi menunggu secara langsung, ia sebenarnya sentiasa kembali sebuah janji. Dalam kes di mana penyataan pemulangan eksplisit tidak hadir, nilai yang akan dikembalikan secara automatik dibungkus dalam janji. Ini berlaku untuk semua nilai pulangan, termasuk bukan janji.
Contoh:
async function increment(num) { return num + 1; } increment(3).then(num => console.log(num)); // Logs 4
Dalam senario ini, walaupun nombor dikembalikan, ia masih terkandung dalam janji. Ini jelas apabila mengakses nilai yang dikembalikan melalui kaedah then().
Kes Lain:
Pengecualian:
Pengecualian kepada peraturan ini berlaku apabila janji dikembalikan secara eksplisit daripada dalam fungsi async. Dalam kes sedemikian, janji tidak dibalut semula.
Contoh:
async function increment(num) { return new Promise(resolve => resolve(num + 1)); } increment(3).then(num => console.log(num)); // Logs 4
Kesimpulan:
Sementara tingkah laku ini mungkin menyimpang daripada kenyataan pemulangan JavaScript tradisional, ia sejajar dengan konsep penjana dalam ES6, yang tidak mengembalikan nilai yang tepat sebagai penyata pulangan.
Atas ialah kandungan terperinci Adakah Fungsi Async Sentiasa Mengembalikan Janji, Walaupun Tanpa Pulangan Jelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!