public function addListener($cb) { if ($this->state === self::STATE_DONE) { $cb($this); return; } $this->listeners[] = CallbackWrapper::wrap($cb); }