Как отменить цепочку обещаний в Reactionphp? - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь установить время ожидания для цепочки асинхронных операций вactphp.

Я попытался просто передать цепочку обещаний в обещание тайм-аута, но как только первое обещание в цепочке имеетвыполнено, время ожидания теряет свою силу.

<?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
...