fyre/promise

一个 Promise 库。

v2.0.7 2024-06-29 01:45 UTC

This package is auto-updated.

Last update: 2024-09-29 02:23:57 UTC


README

FyrePromise 是一个免费的、开源的 PHP Promise 库。

目录

安装

使用 Composer

composer require fyre/promise

在 PHP 中

use Fyre\Promise\Promise;

Promise 创建

  • $callback 是一个 Closure
  • $sync 是一个布尔值,表示是否同步执行 Promise,默认为 false
$promise = new Promise($callback, $sync);

$callback 应该用以下格式表达

$callback = function(Closure $resolve, Closure $reject): void {
    $resolve();
};

方法

捕获

如果 Promise 被拒绝,则执行回调。

  • $onRejected 是一个 Closure,当 Promise 被拒绝时执行。
$promise->catch($onRejected);

最终

Promise 被解决时执行回调。

  • $onFinally 是一个 Closure,当 Promise 被解决时执行。
$promise->finally($onFinally);

获取拒绝原因

获取拒绝原因。

$rejectedReason = $promise->getRejectedReason();

获取解决值

获取解决值。

$resolvedValue = $promise->getResolvedValue();

是否拒绝

确定 Promise 是否被拒绝。

$isRejected = $promise->isRejected();

是否解决

确定 Promise 是否被解决。

$isResolved = $promise->isResolved();

是否解决

确定 Promise 是否已被解决。

$isSettled = $promise->isSettled();

轮询

轮询子进程以确定 Promise 是否已被解决。

$isSettled = $promise->poll();

然后

Promise 被解决时执行回调。

  • $onFulfilled 是一个 Closure,当 Promise 被解决时执行。
  • $onRejected 是一个 Closure,当 Promise 被拒绝时执行,默认为 null
$promise->then($onFulfilled, $onRejected);

等待

等待 Promise 被解决。

$promise->wait();

静态方法

全部

等待所有 Promise 被解决。

  • $promises 是一个包含要等待的 Promise 的数组。
Promise::all($promises);

等待

等待 Promise 被解决。

  • $promise 是要等待的 Promise
$resolvedValue = Promise::await($promise);

拒绝

创建一个拒绝的 Promise

  • $reason 是一个表示拒绝原因的字符串,默认为 null
$promise = Promise::reject($reason);

解决

创建一个解决的 Promise

  • $value 是解决值,默认为 null
$promise = Promise::resolve($value);