Node.js события, краткая заметка
В Node.js широко использованы события, для бд, для http, стримов, практически нет раздела, где их нельзя применить.
В работе я применяю события, намного чаще калбеков. И вот, впервые, заметил, большинство учебников описывают создание EventEmitter через конструктор.
Приведу пример этого:
var EventEmitter = require( 'events').EventEmitter ,inherits = require( 'util').inherits; var function test(){ var self = this; .... ............... self.emit( 'done', data); .... } inherits( test, EventEmitter); .....
Вызов:
new test().once( 'done', callback);
Тут мы использовали оператор new. Но программирование как известно, одним сценарием не ограничено, часто нам не надо создавать новый экземпляр, нужны просто события, для асинхронной операции. Классически, это решают калбеком,
но возможен и другой вариант:
var EventEmitter = require( 'events').EventEmitter var function test(){ var emiter = new EventEmitter; .... ...............emiter.emit( 'done', data); .... return emiter; }
Вызов:
test().once( 'done', callback);
Конечно, это ни сколько не уменьшило права на жизнь, предыдущего способа, это просто — другой способ.
39 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів