activecollab/promises

3.0.1 2022-03-03 09:03 UTC

This package is auto-updated.

Last update: 2024-08-29 03:47:39 UTC


README

Build Status

此库的目的是提供持久的服务器端承诺。我们构建它来支持我们的多服务系统,其中一个服务发出工作请求并期望另一个服务执行它(并在接受工作时分发承诺,承诺可以是完成或拒绝)。

示例

<?php

use ActiveCollab\DatabaseConnection\Connection\MysqliConnection;

$mysqli_link = new \MySQLi('localhost', 'root', '', 'activecollab_promises_test');

if ($mysqli_link->connect_error) {
    throw new \RuntimeException('Failed to connect to database. MySQL said: ' . $mysqli_link->connect_error);
}

$mysqli_connection = new MysqliConnection($mysqli_link);

$promises = new Promises($this->connection);

// Print promise signature
$promise = $promises->create();

print $promise->getSinature() . "\n";
print (string) $promise . "\n"; // __toString() is available

// Default promise status
$promise = $promises->create();

$promises->isFulfilled($promise); // false
$promises->isRejected($promise);  // false
$promises->isSettled($promise);   // false

// Promise fulfillment
$promise = $promises->create();

$promises->fulfill($promise);

$promises->isFulfilled($promise); // true
$promises->isRejected($promise);  // false
$promises->isSettled($promise);   // true

// Promise rejection
$promise = $promises->create();

$promises->reject($promise);

$promises->isFulfilled($promise); // false
$promises->isRejected($promise);  // true
$promises->isSettled($promise);   // true

运行测试

要运行测试,请使用 cd 命令进入此目录,然后运行

phpunit -c test