internal/promise

A lightweight implementation of CommonJS Promises/A for PHP

3.4.0 2025-08-27 14:01 UTC

This package is auto-updated.

Last update: 2025-08-28 11:24:44 UTC


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

PHP Latest Version on Packagist License Total Downloads

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.