В 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); }); Лучший ответ: Метод по привязывает событие

Вопрос:

Я новичок в 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); }); Лучший ответ:

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

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

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

Ответ №1

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

Ответ №2

Обратный вызов 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);

Оцените статью
Добавить комментарий