http.getのコールバックは、(名前を付けた)単一の引数で呼び出されますreq
。req
、「request」の略で、この引数はhttp.ClientRequestオブジェクトであるため、一般名です。http.ClientRequestオブジェクトはstream.Writableを実装します。重要な点は、すべてのストリームがEventEmitterのインスタンスであるということです。
EventEmitterには、onと呼ばれる関数があり、指定されたイベントのリスナー関数を追加します。
「リスナー機能」は「コールバック機能」の別名です。
あなたの例では、data
イベントとイベントのリスナーを追加しましたerror
。リスナー関数は、EventEmitterによって呼び出されます(「コールバック」という用語を使用します)。
追加クレジット
リスナーがリスニングを停止する必要がある場合(つまり、コールバックが呼び出されたくない場合)、emitter.removeListener関数を使用してリスナーを削除できます。
var myCallback = function(e) { console.log('Got error: ' + e.message); }
res.on('error', myCallback);
// do some things...
res.removeListener('error', myCallback);
リスナーを1回だけ実行する場合は、関数の代わりにemitter.onceを使用できます。そうすれば、リスナーをon
削除する必要はありません。
res.once('error', myCallback);