გამოიწერე YouTube-ის არხიyoutube logoგამოწერა

Node.js-ის events მოდული

როდესაც ჩვენ შევისწავლეთ ჯავასკრიპტის DOM ჩვენ აქტიურად ვიყენებდით ე.წ. ივენთებს (events) როგორებიცაა მაგალითად: მაუსის კლიკი (click) რომლის დახმარებითაც ვცდილობდით კონკრეტული ელემენტის კლიკზე კონკრეტული ფუნქციონალის შესრულებას.

nodejs-ის მხარეს ჩვენ ასევე გვაქვს მსგავსი event-ების კლასი რომელიც შესულია ნოუდის  events მოდულში.

მოცემულ გაკვეთილში შევისწავლით თუ როგორი პრინციპით მუშაობს EventEmitter კლასი node-ის აპლიკაციაში.

მაგალითი:

const EventEmitter = require('node:events');
const eventEmitter = new EventEmitter();

განვიხილოთ მაგალითი. მაგალითში პირველ რიგში ვაიმპორტებთ EventEmitter კლასს, რასაც ვაკეთებთ ე.წ. პასკალ ქეის შეთანხმებით.
ხოლო შემდგომ ცვლადში სახელად eventEmitter ვახდენთ EventEmitter-კლასის ინიციალიზაციას, რაც საშუალებას გვაძლევს გამოვიყენოთ მისი ყველა მეთოდი.

მიუხედავად EventEmitter კლასში არსებული მრავალი მეთოდისა ჩვენ ძირითად შემთხვევაში გამოვიყენებთ emit და on მეთოდებს.

  • emit მეთოდით ხდება event-ის დაწყება
  • on მეთოდი გავძლევს საშუალებას მოვუსმინოთ კონკრეტულ event-ს callback ფუნქციის დახმარებით

მაგალითისთვის შევქმნათ event სახელად start რომელიც კონსოლში დაბეჭდავს started ტექსტს.

მაგალითი:

eventEmitter.on('start', () => {
  console.log('started');
});

მიუხედავად იმისა, რომ ჩვენ წარმატებით შევქმენით event სახელად start კოდის გაშვებისას კონსოლში არაფერი დაიბეჭდება მანამ სანამ არ მოვახდენთ მოცემული event-ის გაშვებას, რომელიც emit მეთოდის დახმარებით უნდა მოვახდინოთ.

მაგალითი:

eventEmitter.emit('start');

მოცემული კოდი მოახდენს start event-ის გაშვებას, შესაბამისად შესრულდება callback-ში არსებული კოდი და დაიბეჭდება started ტექსტი.

მრავალ არგუმენტიანი EventEmitter

eventEmitter ასევე გვაძლევს საშუალებას emit მეთოდის დახმარებით ასევე გავგზავნოთ სასურველი არგუმენტები, რომელიც ხელმისაწვდომი გახდება callback ფუნქციაშ პარამეტრების სახით.

მაგალითი:

eventEmitter.on('start', number => {
  console.log(`started ${number}`);
});

eventEmitter.emit('start', 23);

მრავალ არგუმენტიანი მაგალითი:

 

eventEmitter.on('start', (start, end) => {
  console.log(`started from ${start} to ${end}`);
});

eventEmitter.emit('start', 1, 100);

EventEmitter კლასი ასევე გვთავაზობს სხვადასხვა მეთოდებს.

  • once(): ამატებს ერთჯერად listener-ს
  • removeListener() / off(): აშორებს event listener-ს event-დან
  • removeAllListeners(): აშორებს ყველა listener-ს event-დან

მოცემული მაგალითები მოყვანილია nodejs-ის ოფიციალური დოკუმენტაციიდან, იმისთვის, რომ ვრცლად გაარჩიოთ EventEmitter კლასი გირჩევთ გაეცნოთ დოკუმენტაციას

კურსში შემავალი თემები

🔗 nodejs🔗 json🔗 javascript

დამატებითი რესურსები

სხვა კატეგორიები

შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა

ბოლოს დაწერილი ბლოგები პროგრამირებაზე

ქვემოთ მოცემულია უახლესი 3 ბლოგი პროგრამირების თემატიკასთან დაკავშირებით