statement = $statement; $this->execute = $execute; $this->deallocate = $deallocate; } public function __destruct() { ($this->deallocate)($this->statement->name); } /** * @return string */ public function getQuery(): string { return $this->statement->query; } /** * @param mixed ...$params * * @return \Amp\Promise<\Amp\Postgres\Result> * * @throws \Amp\Postgres\FailureException If executing the statement fails. */ public function execute(...$params): Promise { return ($this->execute)([$this->statement, "execAsync"], $params); } }