Wywołanie zwrotne dla http.get jest wywoływana z jednym argumentem (który masz nazwie req
). req
, skrót od "request", jest nazwą pospolitą, ponieważ ten argument jest obiektem http.ClientRequest. Obiekt http.ClientRequest implementuje stream.Writable, a tu jest ważny bit: wszystkie strumienie są instancjami EventEmitter.
EventEmitter ma funkcję o nazwie on, która dodaje funkcję detektora dla określonego zdarzenia.
„funkcja słuchacz” to po prostu inna nazwa „funkcji zwrotnej”
w przykładzie, dodasz detektor zdarzenia data
a wydarzeniem error
. Funkcje odbiornika są o nazwie (ergo termin "oddzwanianie") przez EventEmitter.
Extra Credit
Jeśli kiedykolwiek potrzebują słuchacza przestać słuchać (czyli już nie chcesz, żeby Twój zwrotna nazywać), można usunąć słuchacza z emitter.removeListener funkcję:
var myCallback = function(e) { console.log('Got error: ' + e.message); }
res.on('error', myCallback);
// do some things...
res.removeListener('error', myCallback);
Jeśli chcesz tylko słuchaczem, aby uruchomić jeden raz, można użyć emitter.once zamiast funkcji on
, a wtedy nie będzie musiał go usunąć:
res.once('error', myCallback);
dziękuję, myślę, że nie mam jeszcze oriantate z dokumentacją node.js. – avicennasoftwarelabs
Zobacz dokumentację dla 'stream'. Wynikiem żądania HTTP jest czytelny 'stream' i będzie zawierał wszystkie zdarzenia i metody z nim związane. – ebohlman