我在玩 React 并想尝试获得一个工作超时功能。遵循(某种)来自https://github.com/reactphp/promise-timer#timeout的示例和单元测试我想出了:
use React\Promise\Timer;
$promise = uncertainOperation();
$loop = \React\EventLoop\Factory::create();
Timer\timeout($promise, 1, $loop)->then(
function ($value) {
var_dump($value);
}
,
function ($error) {
var_dump($error);
}
);
$loop->run();
function uncertainOperation() {
return new React\Promise\Promise(
function ($resolve) {
for($i = 0; $i < 30000000; $i++) { }
$resolve("Done");
}
);
}
但是,无论我在Timer\timeout中设置的时间有多低,这总是以“完成”来解决。我错过了什么?