danog/async-construct

Async class constructor and wakeup functions for AMPHP.

Fund package maintenance!
danog

0.1.0 2020-07-31 13:09 UTC

This package is auto-updated.

Last update: 2024-11-29 06:04:11 UTC


README

Build status codecov License

danog/asyncConstruct provides async class constructor and wakeup functions for AMPHP.

Installation

composer require danog/async-construct

API

AsyncConstruct

Example

Simply use this trait in your class, and define a __construct_async async method.
The trait will automatically run the async method on construction, and expose a set of APIs to wait on the result of the constructor for initialization.

init()

Will blockingly wait for execution of the async constructor, returning its return value.

initAsynchronously()

Will return a promise that, when yielded, will wait for and return the return value of the constructor.

inited()

Returns a boolean, indicating whether the class was initialized or not.

BlockingConstruct

Example

Exactly like AsyncConstruct, except that the blocking init() function will be automatically called on construction.

AsyncWakeup

Example

Simply use this trait in your class, and define a __wakeup_async async method.
The trait will automatically run the async method on deserialization, and expose a set of APIs to wait on the result of the wakeup function for re-initialization.

wakeup()

Will blockingly wait for execution of the async wakeup function, returning its return value.

wakeupAsynchronously()

Will return a promise that, when yielded, will wait for and return the return value of the wakeup function.

wokenUp()

Returns a boolean, indicating whether the class was initialized or not.

BlockingWakeup

Example

Exactly like AsyncWakeup, except that the blocking wakeup() function will be automatically called on wakeup.