Files
rspade_system/vendor/react/promise/src/Deferred.php
root f6fac6c4bc Fix bin/publish: copy docs.dist from project root
Fix bin/publish: use correct .env path for rspade_system
Fix bin/publish script: prevent grep exit code 1 from terminating script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-21 02:08:33 +00:00

53 lines
1.0 KiB
PHP
Executable File

<?php
namespace React\Promise;
/**
* @template T
*/
final class Deferred
{
/**
* @var PromiseInterface<T>
*/
private $promise;
/** @var callable(T):void */
private $resolveCallback;
/** @var callable(\Throwable):void */
private $rejectCallback;
/**
* @param (callable(callable(T):void,callable(\Throwable):void):void)|null $canceller
*/
public function __construct(?callable $canceller = null)
{
$this->promise = new Promise(function ($resolve, $reject): void {
$this->resolveCallback = $resolve;
$this->rejectCallback = $reject;
}, $canceller);
}
/**
* @return PromiseInterface<T>
*/
public function promise(): PromiseInterface
{
return $this->promise;
}
/**
* @param T $value
*/
public function resolve($value): void
{
($this->resolveCallback)($value);
}
public function reject(\Throwable $reason): void
{
($this->rejectCallback)($reason);
}
}