如何在reactphp中取消Promise链?

时间:2018-12-20 14:03:29

标签: promise cancellation reactphp

我正在尝试为reactphp中的一系列异步操作设置超时时间。

我试图将承诺链简单地传递给超时承诺,但是一旦实现了链中的第一个承诺,超时就会失去作用。

<?php
use function React\Promise\Timer\resolve;

$promise = resolve(1, $loop)->then(function () use ($loop) {
    echo 'promise 1' . PHP_EOL;
    return resolve(5, $loop)->then(function () {
        echo 'promise 1.1' . PHP_EOL;
    });
})->then(function() use ($loop) {
    echo 'promise 2' . PHP_EOL;
});

\React\Promise\Timer\timeout($promise, 2, $loop);
$loop->run();

预期

promise1

实际

promise1
promise1.1
promise2

0 个答案:

没有答案