frodeborli / skuld
Some answers aren't immediately available. Skuld is a complete Promise implementation with no dependencies, designed to work together with other promise implementations.
1.0.3
2022-12-03 23:59 UTC
Requires (Dev)
- frodeborli/themis: ^1.1.19
This package is auto-updated.
Last update: 2024-11-04 03:58:40 UTC
README
A powerful generic promise implementation. API compatible with Promise/A+ from javascript and interoperable with most other promise implementations.
Basic Usage
Promises can be resolved by calling either the $fulfill
or $reject
callbacks passed
to the resolve function. Alternatively the resolve function can return a value.
<?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";
});
Resolving promises
<?php
use Skuld\Promise;
function future_value() {
return new Promise(function() {
return 10;
});
}
echo future_value()->wait(); // outputs 10
Sleep promise
The Promise::sleep(float $time)
function returns a Promise which will be resolved after $time
seconds.
Example usage:
<?php
use Skuld\Promise;
function value_in_10_second() {
return new Promise(function() {
Promise::sleep(10)->wait();
return 123;
});
}