В одном из модулей, полученных с npm увидел такое в конце
return this.on('camdata', function(data) {
return self.wsServer.broadcast(data);
});
};
метод целикомVideoStream.prototype.pipeStreamToSocketServer = function() {
var self;
self = this;
this.wsServer = new ws.Server({
port: this.wsPort
});
this.wsServer.on("connection", function(socket) {
return self.onSocketConnect(socket);
});
this.wsServer.broadcast = function(data, opts) {
var i, results;
results = [];
for (i in this.clients) {
if (this.clients[i].readyState === 1) {
results.push(this.clients[i].send(data, opts));
} else {
results.push(console.log("Error: Client (" + i + ") not connected."));
}
}
return results;
};
return this.on('camdata', function(data) {
return self.wsServer.broadcast(data);
});
};
И никак не могу понять, что возвращает return?
Если посудить, то this.on подписывает текущий экземпляр объекта с классом VideoStream на событие, в обработчике которого возвращается массив сообщения (по сути, broadcast рассылает всем клиентам полученный кусок данных).
Но что возвращает return this.on(...); ? Если ничего, то в чем суть?
p.s. так выглядит код, подключающий эту библиотеку
(function() {
var VideoStream;
VideoStream = require('./videoStream');
module.exports = VideoStream;
}).call(this);
И еще выше идет вызов конструктора этого класса с заданием параметров.
Сам констркутор
конструкторVideoStream = function(options) {
this.name = options.name;
this.streamUrl = options.streamUrl;
this.width = options.width;
this.height = options.height;
this.wsPort = options.wsPort;
this.inputStreamStarted = false;
this.stream = void 0;
this.startMpeg1Stream();
this.pipeStreamToSocketServer();
return this;
};