File manager - Edit - /home/proidvn/site.proid.vn/wp-content/plugins/woocommerce/lib/packages/GraphQL/Deferred.php
Back
<?php declare(strict_types=1); namespace Automattic\WooCommerce\Vendor\GraphQL; use Automattic\WooCommerce\Vendor\GraphQL\Executor\Promise\Adapter\SyncPromise; use Automattic\WooCommerce\Vendor\GraphQL\Executor\Promise\Adapter\SyncPromiseQueue; /** * User-facing promise class for deferred field resolution. * * @phpstan-type Executor callable(): mixed */ class Deferred extends SyncPromise { /** * Executor for deferred promises. * * @var (callable(): mixed)|null */ protected $executor; /** * Create a new Deferred promise and enqueue its execution. * * @api * * @param Executor $executor */ public function __construct(callable $executor) { $this->executor = $executor; SyncPromiseQueue::enqueue(function (): void { $executor = $this->executor; assert($executor !== null, 'Always set in constructor, this callback runs only once.'); $this->executor = null; try { $this->resolve($executor()); } catch (\Throwable $e) { $this->reject($e); } }); } /** * Alias for __construct. * * @param Executor $executor * * @deprecated TODO remove in next major version, use new Deferred() instead */ public static function create(callable $executor): self { return new self($executor); } }
| ver. 1.4 |
Github
|
.
| PHP 8.0.30 | Generation time: 0.17 |
proxy
|
phpinfo
|
Settings