Der Rückruf für http.get mit einem einzigen Argument aufgerufen (die Sie req
benannt haben). req
, kurz für "Anfrage", ist ein gebräuchlicher Name, weil dieses Argument ein http.ClientRequest Objekt ist. Das http.ClientRequest-Objekt implementiert stream.Writable, und hier ist das wichtige Bit: Alle Streams sind Instanzen von EventEmitter.
EventEmitter hat eine Funktion namens on, die eine Listener-Funktion für ein bestimmtes Ereignis hinzufügt.
„Listener-Funktion“ ist nur ein anderer Name für „Callback-Funktion“
In Ihrem Beispiel haben Sie einen Listener für das data
Ereignis und das error
Ereignis hinzugefügt. Listener-Funktionen sind genannt (Ergo der Begriff "Rückruf") durch den EventEmitter.
Extra Credit
Wenn Sie jemals einen Zuhörer müssen aufhören zu hören (dh Sie nicht mehr Ihre Rückruf aufgerufen werden wollen), können Sie einen Listener mit der emitter.removeListener Funktion entfernen:
var myCallback = function(e) { console.log('Got error: ' + e.message); }
res.on('error', myCallback);
// do some things...
res.removeListener('error', myCallback);
Wenn Sie nur ein Zuhörer einmal ausführen möchten, können Sie emitter.once anstelle der on
Funktion verwenden, und dann werden Sie es nicht entfernen müssen:
res.once('error', myCallback);
danke, ich denke, ich habe noch nicht selbst mit node.js Dokumentation. – avicennasoftwarelabs
Schauen Sie sich die Dokumentation für 'stream' an. Das Ergebnis einer HTTP-Anfrage ist ein lesbarer 'Stream' und enthält alle damit verbundenen Ereignisse und Methoden. – ebohlman