Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Melaksanakan Kod Asynchronous dengan Betul di Peringkat Atas dalam JavaScript?

Bagaimanakah Saya Melaksanakan Kod Asynchronous dengan Betul di Peringkat Atas dalam JavaScript?

DDD
DDDasal
2024-12-13 06:44:19217semak imbas

How Do I Properly Execute Asynchronous Code at the Top Level in JavaScript?

Pelaksanaan Kod Asynchronous Peringkat Atas

Dalam pengaturcaraan tak segerak, ciri async/wait membolehkan anda bertukar antara tugas segerak dan tak segerak dengan lancar. Walau bagaimanapun, apabila melaksanakan kod tak segerak di peringkat atas, pertimbangan tertentu mesti dibuat.

Penjelasan

Apabila anda mentakrifkan fungsi tak segerak, ia mengembalikan Janji. Apabila anda memanggil fungsi ini di peringkat atas, ia segera mengembalikan Janji, bukan nilai yang diselesaikan. Inilah sebabnya mengapa konsol anda mengeluarkan objek Promise sebelum ia melaksanakan tugas tak segerak.

Penyelesaian

Untuk menyelesaikannya, anda mempunyai beberapa pilihan:

1. Menunggu Peringkat Atas (Cadangan ES2022)

Dalam persekitaran moden, anda boleh menggunakan menunggu peringkat teratas dalam modul. Ini membolehkan anda menunggu Janji terus dalam skop modul.

const text = await main();
console.log(text); // Logs the resolved value

2. Fungsi Async peringkat atas dengan Penolakan Tidak Terkendali

Anda boleh menentukan fungsi async peringkat atas yang tidak pernah menolak. Ini menghalang ralat penolakan yang tidak dikendalikan tetapi tidak mengendalikan ralat secara eksplisit.

(async () => {
  try {
    const text = await main();
    console.log(text); // Logs the resolved value
  } catch (e) {
    // Error handling (optional)
  }
})();

3. then() dan catch()

Jika kedua-dua pilihan di atas tidak sesuai, anda boleh menggunakan kaedah Promise then() dan catch() untuk mengendalikan hasilnya.

main()
  .then((text) => {
    console.log(text); // Logs the resolved value
  })
  .catch((err) => {
    // Error handling
  });

Nota: Dalam semua kes, adalah penting untuk mengendalikan penolakan dengan betul untuk mengelakkan ralat penolakan yang tidak dikendalikan.

Atas ialah kandungan terperinci Bagaimanakah Saya Melaksanakan Kod Asynchronous dengan Betul di Peringkat Atas dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Pelan halatuju untuk Next.jsArtikel seterusnya:Pelan halatuju untuk Next.js