Rumah  >  Artikel  >  hujung hadapan web  >  Corak Async dalam Node.js - Tutorial Node.js - Bahagian 6

Corak Async dalam Node.js - Tutorial Node.js - Bahagian 6

DDD
DDDasal
2024-09-20 18:46:02741semak imbas

Async Patterns in Node.js - Node.js Tutorial - Part 6

Corak Async dalam Node.js

Node.js beroperasi pada seni bina didorong acara berbenang tunggal, bermakna ia boleh mengendalikan banyak operasi serentak tanpa menyekat urutan utama. Ini penting untuk mencipta aplikasi berskala yang mana tugas seperti operasi I/O (membaca fail, menanya pangkalan data, dll.) perlu berlaku secara tidak segerak untuk mengelak daripada menyekat pelaksanaan kod lain.

Menulis Async vs Sync Code

Kod Segerak

Kod segerak melaksanakan satu langkah pada satu masa, bermakna setiap langkah perlu diselesaikan sebelum beralih ke langkah seterusnya. Ini boleh menyekat urutan utama jika operasi lambat (cth., membaca fail besar atau menanyakan pangkalan data).

Contoh (Kod Segerak):

const fs = require('fs');

const data = fs.readFileSync('file.txt', 'utf8');
console.log(data);
  • Masalah: Jika readFileSync mengambil masa yang lama (cth., fail besar), keseluruhan aplikasi akan disekat dalam tempoh ini.

Kod Asynchronous

Kod tak segerak, sebaliknya, tidak menyekat utas utama. Daripada menunggu operasi selesai, program terus melaksanakan dan mengendalikan hasil operasi async apabila sudah sedia.

Contoh (Kod Asynchronous):

const fs = require('fs');
// Call Back
fs.readFile('file.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

console.log('This will log before the file content!');
  • Dalam contoh ini, fail dibaca secara tak segerak dan program tidak menyekat; baris console.log('Ini akan log sebelum kandungan fail!') dilaksanakan semasa fail masih dibaca.

Bila hendak menggunakan Synchronous vs Asynchronous

  • Kod segerak sesuai untuk tugasan kecil atau skrip yang tidak membimbangkan prestasi.
  • Kod tak segerak sesuai untuk aplikasi berat I/O seperti pelayan web, di mana anda tidak mahu menyekat urutan utama sementara menunggu operasi seperti pertanyaan pangkalan data atau permintaan HTTP.

Async/Tunggu

Diperkenalkan pada ES2017 (Node.js 7.6+), async/wait ialah gula sintaktik yang dibina di atas janji. Ia membenarkan kod tak segerak ditulis dalam cara seperti segerak, menjadikannya lebih mudah dibaca dan lebih mudah diselenggara.

Contoh (Async/Tunggu):

   const fs = require('fs').promises;

   async function readFile() {
     try {
       const data = await fs.readFile('file.txt', 'utf8');
       console.log(data);
     } catch (err) {
       console.error(err);
     }
   }

   readFile();

Ringkasan

  • Panggil balik adalah mudah tetapi boleh membawa kepada neraka panggil balik.
  • Janji bersihkan neraka panggilan balik dan sediakan pengendalian ralat yang lebih baik.
  • Async/Await menjadikan kod tak segerak kelihatan segerak, meningkatkan kebolehbacaan.

Memilih kod async vs sync bergantung pada kes penggunaan anda. Untuk operasi berat I/O, sentiasa pilih corak tak segerak untuk memastikan utas utama tidak disekat dan aplikasi anda responsif.

Terima kasih kerana membaca, dan selamat mengekod! ?

Atas ialah kandungan terperinci Corak Async dalam Node.js - Tutorial Node.js - Bahagian 6. 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