Soalan: Adakah Fungsi Async Secara Tersirat Mengembalikan Janji?
Dalam JavaScript, fungsi async diisytiharkan menggunakan kata kunci async dan sering dianggap secara automatik balas janji. Walau bagaimanapun, ini menimbulkan kemungkinan ketidakkonsistenan: apabila nilai bukan janji dipulangkan secara eksplisit, fungsi itu kelihatan membungkus nilai dalam janji.
Jawapan: Semua Fungsi Async Mengembalikan Janji
Tingkah laku yang diperhatikan adalah betul: semua fungsi async secara tersirat mengembalikan janji. Khususnya:
Contoh:
async function increment(num) { return num + 1; } // Logs 4, as the returned promise resolves to 4. increment(3).then(num => console.log(num));
Membalut Gelagat:
Tingkah laku membalut ini unik untuk fungsi penjana. Sebagai contoh, fungsi penjana juga mengembalikan janji, tetapi dengan cara yang berbeza:
function* foo() { return 'test'; } // Logs an object, not "test". console.log(foo()); // Logs 'test' by explicitly calling .next() on the generator function. console.log(foo().next().value);
Atas ialah kandungan terperinci Adakah Fungsi Async Sentiasa Membalas Janji?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!