frodeborli/skuld

一些答案可能无法立即提供。Skuld是一个无依赖的完整Promise实现,旨在与其他Promise实现协同工作。

1.0.3 2022-12-03 23:59 UTC

This package is auto-updated.

Last update: 2024-09-04 03:44:42 UTC


README

强大的通用Promise实现。API与javascript的Promise/A+兼容,与其他大多数Promise实现互操作。

基本用法

可以通过调用传递给resolve函数的$fulfill$reject回调函数来解析Promise。或者,resolve函数可以返回一个值。

<?php
use Skuld\Promise;

function alternative_1() {
    return new Promise(function($fulfill, $reject) {
        $fulfill("Future value");
    });
}

function alternative_2() {
    return new Promise(function() {
        return "Future value";
    })
}

function alternative_3() {
    return Promise::resolved("Future value");
}

alternative_1()->then(function($value) {
    echo $value . "\n";
});

解析Promise

<?php
use Skuld\Promise;

function future_value() {
    return new Promise(function() {
        return 10;
    });
}

echo future_value()->wait(); // outputs 10

休眠Promise

Promise::sleep(float $time)函数返回一个Promise,将在$time秒后解析。

示例用法

<?php
use Skuld\Promise;

function value_in_10_second() {
    return new Promise(function() {
        Promise::sleep(10)->wait();
        return 123;
    });
}