Я пытаюсь реализовать js-подобные обещания с помощью реакцииPHP. Но почему-то методы, выполненные синхронно, end_at
напечатаны только после того, как обетование разрешено.promPHP обещания исполняются синхронно
Код:
function iterate() {
$deferred = new \React\Promise\Deferred();
sleep(2);
$deferred->resolve();
return $deferred->promise();
}
Route::get('test/async', function() {
echo "start execution at ".time()."<br>"; // this executed first
iterate()->then(function($result) {
echo "got result result at ". time() . "<br>"; // this is second
}, function($error) {
}, function ($finally) {
});
echo "end at " . time(); // this is executed only after then().
});