1
0
mirror of https://github.com/danog/amp.git synced 2024-11-26 20:15:00 +01:00

📝 Add wait, rethrow and timeout docs, fixes #104

This commit is contained in:
Niklas Keller 2017-05-02 17:54:10 +02:00
parent 692cabf8c4
commit f10321e5f8

View File

@ -1,3 +1,22 @@
# Promise Helpers
This is a documentation stub. Please help writing this documentation. See [#104](https://github.com/amphp/amp/issues/104).
Amp offers some small promise helpers, namely
* `Amp\Promise\rethrow()`
* `Amp\Promise\timeout()`
* `Amp\Promise\wait()`
## `rethrow()`
`rethrow()` subscribes to the passed `Promise` and forwards all errors to the event loop. That handler can log these failures or the event loop will stop if no such handler exists.
`rethrow()` is useful whenever you want to fire and forget, but still care about any errors that happen.
## `timeout()`
`timeout()` applies a timeout to the passed promise, either resolving with the original value or error reason in case the promise resolves within the timeout period, or otherwise fails the returned promise with an `Amp\TimeoutException`.
Note that `timeout()` does not cancel any operation or frees any resources. If available, use dedicated API options instead, e.g. for socket connect timeouts.
## `wait()`
`wait()` can be used to synchronously wait for a promise to resolve. It returns the result value or throws an exception in case of an error. `wait()` blocks and calls `Loop::run()` internally. It SHOULD NOT be used in fully asynchronous applications, but only when integrating async APIs into an otherwise synchronous application.