Promise
in package
Ленивый промис результата запроса.
Вычисление откладывается до первого вызова Promise::wait() и выполняется ровно один раз: результат (значение или исключение) запоминается. Цепочки Promise::then() / Promise::otherwise() строят новые промисы, не запуская обмен раньше времени. Комбинаторы Promise::all(), Promise::settle() и Promise::any() собирают наборы промисов. Промис-результат обработчика разворачивается автоматически.
Table of Contents
Constants
Methods
- __construct() : mixed
- all() : self
- Промис значений всех промисов (с сохранением ключей).
- any() : self
- Промис первого успешного значения.
- otherwise() : self
- Продолжить цепочку обработчиком ошибки.
- reject() : self
- Уже отклонённый промис.
- resolve() : self
- Уже выполненный промис.
- settle() : self
- Промис итогов всех промисов: для каждого — состояние и значение/причина.
- state() : string
- Текущее состояние промиса.
- then() : self
- Продолжить цепочку обработчиками результата.
- wait() : mixed
- Дождаться результата (выполнить вычисление, если оно ещё не выполнено).
Constants
FULFILLED
public
mixed
FULFILLED
= 'fulfilled'
PENDING
public
mixed
PENDING
= 'pending'
REJECTED
public
mixed
REJECTED
= 'rejected'
Methods
__construct()
public
__construct(callable(): mixed|null $resolver) : mixed
Parameters
- $resolver : callable(): mixed|null
-
вычисление результата (вызывается один раз)
all()
Промис значений всех промисов (с сохранением ключей).
public
static all(array<string|int, self> $promises) : self
Отклоняется первой же ошибкой.
Parameters
- $promises : array<string|int, self>
-
набор промисов
Return values
self —промис массива значений
any()
Промис первого успешного значения.
public
static any(iterable<string|int, self> $promises) : self
Отклоняется, только если отклонены все промисы (причина — последняя ошибка).
Parameters
- $promises : iterable<string|int, self>
-
набор промисов
Return values
self —промис первого значения
otherwise()
Продолжить цепочку обработчиком ошибки.
public
otherwise(callable(Throwable): mixed $onRejected) : self
Parameters
- $onRejected : callable(Throwable): mixed
-
обработчик ошибки
Return values
self —новый промис
reject()
Уже отклонённый промис.
public
static reject(Throwable $reason) : self
Parameters
- $reason : Throwable
-
причина
Return values
self —отклонённый промис
resolve()
Уже выполненный промис.
public
static resolve(mixed $value) : self
Parameters
- $value : mixed
-
значение
Return values
self —выполненный промис
settle()
Промис итогов всех промисов: для каждого — состояние и значение/причина.
public
static settle(iterable<string|int, self> $promises) : self
Никогда не отклоняется.
Parameters
- $promises : iterable<string|int, self>
-
набор промисов
Return values
self —промис массива ['state' => …, 'value' => …] / ['state' => …, 'reason' => …]
state()
Текущее состояние промиса.
public
state() : string
Return values
string —then()
Продолжить цепочку обработчиками результата.
public
then([callable(mixed): mixed|null $onFulfilled = null ][, callable(Throwable): mixed|null $onRejected = null ]) : self
Parameters
- $onFulfilled : callable(mixed): mixed|null = null
-
обработчик значения
- $onRejected : callable(Throwable): mixed|null = null
-
обработчик ошибки
Return values
self —новый промис
wait()
Дождаться результата (выполнить вычисление, если оно ещё не выполнено).
public
wait() : mixed
Tags
Return values
mixed —значение промиса