iterator = $iterator; $this->channel = $channel; $this->unlisten = $unlisten; } /** * {@inheritdoc} */ public function advance(): Promise { return $this->iterator->advance(); } /** * {@inheritdoc} */ public function getCurrent() { return $this->iterator->getCurrent(); } /** * @return string Channel name. */ public function getChannel(): string { return $this->channel; } /** * Unlistens from the channel. No more values will be emitted on theis channel. * * @return \Amp\Promise<\Amp\Postgres\CommandResult> */ public function unlisten(): Promise { /** @var \Amp\Promise $promise */ $promise = ($this->unlisten)($this->channel); $promise->onResolve(function () { $this->complete(); }); return $promise; } }