krakjoe / promises

使用 pthreads v1.0.0+ 的 PHP Promises

v1.0.3 2014-12-08 17:11 UTC

This package is auto-updated.

Last update: 2024-09-09 13:53:26 UTC


README

使用 pthreads v1.0.0+ 的 PHP Promises

Promise 管理器

Promise 管理器代表了一组线程池,用于并行完成承诺。

PromiseManager 的唯一公共 API 是构造函数

public PromiseManager::__construct($size = 4, $worker = \Worker::class, $ctor = [])

请参阅 PHP 手册中的 Pool::__construct

Promise

Promise 代表未来某个时间执行 Promisable 的公共接口的承诺

public Promise::__construct(PromiseManager $manager, Promisable $promisable)

Promise 提供了调度 Thenable 的公共接口后续执行的机制。

public Promise Promise::then(Thenable $then)

接口

IPromisible

public void IPromisable::onFulfill();

IThenable

public void IThenable::onFulfilled(Promisable $promised);
public void IThenable::onError(Promisable $promised);

注意

PromisibleThenable 对象抛出的异常将被捕获并冒泡至调用后续的 Thenable::onError

$manager = new PromiseManager();
$promise = 
	new Promise($manager, new CalculateTheMeaningOfLife());
$promise
	->then(
		new AddTwo($promise))
	->then(
		new PrintMeaning($promise));

$manager->shutdown();

这是一个正在进行中的工作

请注意,这是一个正在进行中的工作,它不旨在与任何现有标准实现最大兼容性,而是一个易于使用的实现,能够兼容并充分利用 pthreads。

在阅读 API 时,请记住除了 PromiseManager 之外,你读到的一切都是 pthreads 对象