cubetools/react-settle-promise

react-promise 的 settle 函数

该软件包的规范仓库似乎已消失,因此软件包已被冻结。

0.1.0 2017-09-29 16:11 UTC

This package is auto-updated.

Last update: 2022-02-09 18:34:42 UTC


README

React\Promise 实现settle函数。

使用方法

use CubeTools\React\SettlePromise;

$promises = [
    React\Promise\resolve('foo'),
    React\Promise\reject(new \Exception()),
    'bar'
];

SettlePromise\settle($promises)->then(function(array $states) {
    foreach($states as $state) {
        if (SettlePromise\FULFILLED === $state['state']) {
            $promiseValue = $state['value'];
            ...
        } else { // SettlePromise\REJECTED
            $failureReason = $state['reason'];
            ...
        }
    }
});
use CubeTools\React\SettlePromise;
use Clue\React\Block;

$loop = \React\EventLoop\Factory::create();

foreach(Block\await(SettlePromise\settleWithTimeout($promises, 5, $loop), $loop) {
    if (SettlePromise\FULFILLED === $state['state']) {
        $promiseValue = $state['value'];
        ...
    } else { // SettlePromise\REJECTED
        $failureReason = $state['reason'];
        ...
    }
}

要替换常量,创建 \CubeTools\React\SettlePromise\SettlePromise 的子类,并定义类常量 FULFILLED 和 REJECTED。然后使用类函数,如 YourClass::settle(...)

安装

步骤 1:下载软件包

打开命令行,进入您的项目目录,并执行以下命令以下载此软件包的最新稳定版本

$ composer require cubetools/react-settle-promise

此命令需要您已全局安装 Composer,请参阅 Composer 文档的 安装章节