fb pixel
გამოიწერე YouTube-ის არხიyoutube logoგამოწერა
val-do.com-ის ლოგო
კურსებიბლოგიხ.დ.კ.წესებიკონტაქტიკონვერტორები

კურსებიბლოგიხ.დ.კ.წესებიკონტაქტიკონვერტორები
შესვლა
  1. მთავარი
  2. კურსები
  3. Node.js-ის კურსი
  4. Node.js-ის events მოდული
Node.js-ის events მოდული

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

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

  • Telegram
  • Discord

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

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

HTML, CSS-ის სა...

HTML, CSS-ის საწყისი კურსი, დამწყებთათვის (deprecated - მოძველებული)

ჯავასკრიპტის კუ...

ჯავასკრიპტის კურსი

JavaScript-ის D...

JavaScript-ის DOM-ის კურსი

TypeScript-ის კ...

TypeScript-ის კურსი

Angular-ის კურს...

Angular-ის კურსი

HTML, CSS-ის კუ...

HTML, CSS-ის კურსი

Reactjs-ის კურს...

Reactjs-ის კურსი დამწყებთათვის

ალგორითმები...

ალგორითმები

Node.js-ის კურს...

Node.js-ის კურსი

Dart-ის კურსი...

Dart-ის კურსი

C პროგრამირების...

C პროგრამირების ენის საფუძვლები

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

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

როგორ ინახება ი...

როგორ ინახება ინფორმაცია. რა არის Bit და Byte?

რატომ არის კომფ...

რატომ არის კომფორტული სამუშაო ოთახი აუცილებელი კოდის წერისა და პროდუქტიული მუშაობისთვის?

რატომ ვერ პოულო...

რატომ ვერ პოულობენ ჯუნიორები სამსახურს?

  • რა არის Node.js?
  • Node.js-ის ინსტალაცია, გარემოს გამართვა
  • Node.js-ის მოდულები
  • Node.js-ის fs მოდული
  • Node.js-ის events მოდული
პროგრამირების კურსები
HTML, CSSJavaScriptTypeScriptAngularReactJSNodeJSC
გამომყევი
InstagramFacebookLinkedinTelegramDiscordYoutubeGithub

© val-do.com 2026 წელი - ყველა უფლება დაცულია

ვერსია 0.1.52