public function close(\Exception $error = null)
{
if (self::STATE_END <= $this->state) {
return;
}
$this->state = self::STATE_END;
if ($this->stream) {
$this->stream->close();
}
$this->emit('end', array($error, $this->response, $this));
$this->removeAllListeners();
}
/** @test */ public function requestShouldRemoveAllListenerAfterClosed() { $requestData = new RequestData('GET', 'http://www.example.com'); $request = new Request($this->connector, $requestData); $request->on('end', function () { }); $this->assertCount(1, $request->listeners('end')); $request->close(); $this->assertCount(0, $request->listeners('end')); }