Rumah  >  Artikel  >  hujung hadapan web  >  Belajar Node.js dalam Hari dengan AI - Hari 6

Belajar Node.js dalam Hari dengan AI - Hari 6

王林
王林asal
2024-08-30 19:06:21414semak imbas

Learning Node.js in Days with AI - Day 6

Hari ini menandakan Hari ke-6 pengembaraan pembelajaran Node.js saya, dan saya mendalami dunia kelas EventEmitter yang menarik. Begini cara saya menavigasinya dan perkara yang saya pelajari sepanjang perjalanan.

Imbasan Teori

Kelas EventEmitter ialah asas dalam Node.js untuk mengurus acara. Ia menyediakan cara yang mantap untuk mencipta, memancarkan dan mengendalikan acara, menjadikannya penting untuk membina aplikasi yang bergantung pada seni bina dipacu peristiwa.

Kaedah Utama Pemancar Acara:

  1. on(eventName, listener): Mendaftarkan pendengar untuk acara tertentu.
  2. emit(eventName, [...args]): Memancarkan peristiwa, menyampaikan hujah pilihan kepada pendengar.
  3. removeListener(eventName, listener): Mengalih keluar pendengar khusus untuk acara.
  4. sekali(eventName, listener): Menambah pendengar yang akan dicetuskan sekali sahaja.

Tugasan Amali

Tugas: Cipta acara dan pengendali tersuai.

Saya bermula dengan mencipta kelas yang memanjangkan EventEmitter dan menambah pengendali acara tersuai. Berikut ialah akaun langkah demi langkah tentang perkara yang saya lakukan:

  1. Mentakrifkan Kelas Tersuai:

Saya mencipta kelas yang dipanggil DataProcessor yang memanjangkan EventEmitter. Kelas ini mempunyai kaedah processData untuk mensimulasikan pemprosesan data.

   const EventEmitter = require('events');

   class DataProcessor extends EventEmitter {
     processData(data) {
       this.emit('start');

       // Simulate data processing
       setTimeout(() => {
         this.emit('data', data);
         this.emit('end');
       }, 1000);
     }
   }
  1. Sediakan Pengendali Acara:

Saya kemudiannya memulakan kelas DataProcessor dan menentukan pengendali untuk tiga acara: 'start', 'data' dan 'end'.

   // Initialization
   const processor = new DataProcessor();

   // Event handlers
   processor.on('start', () => console.log('Processing started...'));
   processor.on('data', (data) => console.log(`Processing data: ${data}`));
   processor.on('end', () => console.log('Processing completed.'));
  1. Acara yang dipancarkan:

Akhir sekali, saya memanggil kaedah processData untuk melihat peristiwa dalam tindakan.

   processor.processData('Some data');

Melihat urutan peristiwa yang berlaku adalah mencerahkan. Output konsol menunjukkan aliran daripada memulakan proses hingga mengendalikan data dan melengkapkannya.

Tugas Bebas

Tugas: Bangunkan sistem pemberitahuan menggunakan acara.

Untuk tugas bebas, saya mereka bentuk kelas Pemberitahu. Begini cara saya mendekatinya:

  1. Mencipta Kelas Pemberitahu:
   const EventEmitter = require('events');

   class Notifier extends EventEmitter {
     constructor() {
       super();
       this.notifications = [];
     }

     addNotification(notification) {
       if (typeof notification !== 'string') {
         this.emit('error', 'Notification must be a string');
         return;
       }

       this.notifications.push(notification);
       this.emit('notify', notification);

       if (this.notifications.length > 0) {
         this.emit('complete');
       }
     }
   }
  1. Pengendali Acara Ditentukan:

Saya menyediakan pengendali untuk 'memberitahu', 'ralat' dan 'menyelesaikan'.

   const notifier = new Notifier();

   notifier.on('notify', (message) => console.log(`New notification: ${message}`));
   notifier.on('error', (err) => console.error(`Error: ${err}`));
   notifier.on('complete', () => console.log('All notifications processed.'));
  1. Menguji Sistem:

Saya menguji sistem dengan menambahkan pemberitahuan dan mengendalikan kemungkinan ralat.

   notifier.addNotification('This is your first notification.');
   notifier.addNotification('This is your second notification.');
   notifier.addNotification(123); // This should trigger an error

Memang memuaskan hati melihat cara pemberitahuan dikendalikan, ralat dilaporkan dan peristiwa penyiapan telah dicetuskan.

Kesimpulan

Penerokaan EventEmitter hari ini telah memperdalam pemahaman saya tentang pengaturcaraan dipacu peristiwa dalam Node.js. Melaksanakan acara dan pengendali tersuai ialah cara yang baik untuk melihat cara acara mengalir dan cara ia boleh diurus dengan berkesan. Tugas bebas memperkukuh lagi konsep ini dan memberi saya pengalaman langsung dengan membina sistem pemberitahuan.

Saya teruja untuk meneruskan perjalanan ini dan melihat apa yang ada pada hari-hari seterusnya!

Sumber

Semua pelajaran yang dibuat oleh ChatGPT boleh didapati di: https://king-tri-ton.github.io/learn-nodejs

Atas ialah kandungan terperinci Belajar Node.js dalam Hari dengan AI - Hari 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