В node.js "request.on" что это такое ".on" - программирование
Подтвердить что ты не робот

В node.js "request.on" что это такое ".on"

Я новичок в node.js и java script, я не могу найти значение этого ключевого слова ".on". когда я сменил его с другим кодом слова.

var req = http.get("http://www.google.com", function(res) {
  console.log("Got response: " + res.statusCode);

 res.on('data', function (chunk) {
});

}).on('error', function(e) {
console.log("Got error: " + e.message);
 });
4b9b3361

Ответ 1

Метод по привязывает событие к объекту.

Это способ выразить ваше намерение , если происходит что-то (отправленные данные или ошибка в вашем случае), , а затем выполняет функцию, добавленную в качестве параметра. Этот стиль программирования называется Программирование, управляемое событиями. Вы можете посмотреть его в Wikipedia

В node.js существует класс с именем EventEmitter, который предоставляет вам весь код, необходимый для основных событий, если вы решите использовать их в своем собственном коде (который я бы настоятельно рекомендуется в случае node.js). Документы для node.js EventEmitter здесь

Ответ 2

. on используется метод для привязки обработчика событий.

Ответ 3

Обратный вызов http.get вызывается с единственным аргументом (который вы назвали req). req, short для "request", является общим именем, потому что этот аргумент является http.ClientRequest. Объект http.ClientRequest реализует stream.Writable, а здесь важный бит: все потоки являются экземплярами EventEmitter.

EventEmitter имеет функцию on, которая добавляет функцию прослушивателя для указанного события.

"функция прослушивателя" - это просто другое имя для функции "обратного вызова"

В вашем примере вы добавили слушателя для события data и события error. Функции прослушивателя называются (ergo термин "обратный вызов" ) с помощью EventEmitter.

Дополнительный кредит

Если вам когда-либо понадобится прослушиватель, чтобы прекратить прослушивание (т.е. вы больше не хотите, чтобы ваш callback вызывался), вы можете удалить слушателя с помощью эмитента .removeListener:

var myCallback = function(e) { console.log('Got error: ' + e.message); }
res.on('error', myCallback);
// do some things...
res.removeListener('error', myCallback);

Если вы хотите, чтобы прослушиватель запускался один раз, вы можете использовать emitter.once вместо функции on, а затем вы не придется удалять его:

res.once('error', myCallback);