clue · GitHub

This changeset adds a new await() function (imported from clue/reactphp-block v1.5.0):

try {
    $result = React\Async\await($promise);
    // promise successfully fulfilled with $result
    echo 'Result: ' . $result;
} catch (Throwable $e) {
    // promise rejected with $e
    echo 'Error: ' . $e->getMessage();
}

Most notably, this function makes it much easier to integrate async code in blocking code bases, such as test suites. On top of this, I hear there's also something new in the pipeline already to make this more useful also for long-running applications 🤫

Note that this function will assume control over the event loop. Internally, it will actually run() the loop until the promise settles and then calls stop() toterminate execution of the loop. This means this function is more suited for short-lived promise executions when using promise-based APIs is not feasible. For long-running applications, using promise-based APIs by leveraging chained then() calls is usually preferable.

Builds on top of clue/reactphp-block#57, clue/reactphp-block#59, clue/reactphp-block#60 and others
Also builds on top of #7 and #4

Read the original on github.com ↗