Rumah > hujung hadapan web > tutorial js > Node.js EventEmitter

Node.js EventEmitter

DDD
Lepaskan: 2024-12-12 22:16:11
asal
820 orang telah melayarinya

Node.js EventEmitter

Hari ini saya akan memberitahu anda tentang kelas EventEmitter. Seperti yang anda ketahui, Node.js mempunyai paradigma pengaturcaraan dipacu peristiwa. Ini bermakna kami akan mentakrifkan beberapa acara dan panggilan balik, acara kami akan dicetuskan dan diproses dalam aliran program kami. Jika anda bertanya mengapa pendekatan sedemikian diguna pakai, ini adalah kerana JavaScript, yang saya jelaskan dengan lebih terperinci dalam artikel saya sebelum ini, menjalankan urutan tunggal dan operasi tak segerak mesti dikendalikan tanpa menyekat dalam beberapa cara.

Jika anda bertanya apa kaitan semua ini dengan kelas EventEmitter, kelas ini menawarkan struktur yang membolehkan kami mengendalikan operasi tak segerak dengan mudah. Sebenarnya, ini ialah pelaksanaan Corak Reka Bentuk Pemerhati.

const EventEmitter = require("events");
class Emitter extends EventEmitter {}

const myE = new Emitter();

myE.on("test", () => {
  console.log("event meydana geldi.");
});
myE.on("test", () => {
  console.log("event meydana geldi.");
});
myE.on("test", () => {
  console.log("event meydana geldi.");
});

console.log(myE.eventNames());

myE.emit("test");
Salin selepas log masuk

Di atas saya menulis contoh mudah tentang cara mentakrif dan memanggil acara. Di sini, kaedah "hidup" sebenarnya mencipta tatasusunan yang dipanggil "ujian" pada objek kosong (objek induk).

{
  test: [
    [Function (anonymous)],
    [Function (anonymous)],
    [Function (anonymous)]
  ]
}
Salin selepas log masuk

Di sini, kaedah "hidup" dipanggil tiga kali dengan nama eventName dan struktur yang terhasil adalah seperti di atas.
Seperti yang anda boleh meneka, acara bernama "ujian" dipanggil dengan kaedah "memancarkan". Di sini, kaedah foreach mengembalikan tatasusunan ujian dan memanggil fungsi di dalamnya.

Jadi di manakah struktur ini digunakan?
Contohnya, dalam acara DOM;

const btn = document.getElementById("btn");
btn.addEventListener("click", () => {
  console.log("clicked");
});
Salin selepas log masuk

Sebagai contoh, dalam permintaan Rangkaian dalam aplikasi Node.js;

const http = require("http");
const req = http
  .request(
    {
      method: "GET",
      hostname: "jsonplaceholder.typicode.com",
      path: "/todos/1"
    },
    (res) => {
      res.on("data", (chunk) => {
        console.log(chunk.toString());
      });

      res.on("end", () => {
        console.log("response ended.");
      });
    }
  )
  .end();
Salin selepas log masuk

Atas ialah kandungan terperinci Node.js EventEmitter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan