internal / promise
A lightweight implementation of CommonJS Promises/A for PHP
3.4.0
2025-08-27 14:01 UTC
Requires
- php: >=8.1.0
Requires (Dev)
- phpstan/phpstan: 1.12.28
- phpunit/phpunit: ^10.5
- rector/rector: ^1.2
- spiral/code-style: ^2.2
- ta-tikoma/phpunit-architecture-test: ^0.8.5
Replaces
- react/promise: ^3.0
README
A lightweight implementation of CommonJS Promises/A for PHP.
Note
This is a fork of reactphp/promise.
Improvements over original reactphp/promise:
- PHP 8.1+ compatibility
declare(strict_types=1);
in all PHP files@yield
annotation in the PromiseInterface
Version 3.x specific:
- Replaces
react/promise
v3 in Composer - Rejection handler is reusable now.
error_log()
is still used by default. - Removed
exit(255)
from RejectionPromise.
Version 2.x specific:
- Replaces
react/promise
v2 in Composer - Enhanced type annotations
Install
composer require internal/promise
Tests
To run the test suite, go to the project root and run:
composer test
On top of this, we use PHPStan on max level to ensure type safety across the project:
composer stan
Credits
This fork is based on reactphp/promise, which is a port of when.js by Brian Cavalier.
Also, large parts of the documentation have been ported from the when.js Wiki and the API docs.