CodeCoupler UI Internals
This informations are used internally. Normally you never have to use this.
Async Contructor Pattern
The base class of all components implements an async constructor pattern. Classes derived from here can initiated with:
Or with:
The constructor of the base class call for these async methods behind each other: prepare
, init
,
finalize
.
The prepare
and finalize
methods are used internally by the base class and components. Classes
implemented by the user that derive from components have to implement their asynchronous
initialization procedure within the init
method:
The prepare
method receive the arguments as they are used in the instantiation of the class. In
most cases the components override the prepare
method to prepare the expected arguments or do
other initializations.
Normally the user does not instatiate a component directly, except for the System
component. He
use the component factory methods like app()
, stage()
and widget()
. In these methods the
environment for the prepare
method will be prepared and the component will be instantiated. These
methods also take care of error handling if necessary.
If the return value of the prepare
method is false
, init
will not be executed.
The finalize
method do receive the return value of the init method as first argument and the
return value of prepare
as second argument. The method will be only executed if prepare
and
init
do not throw any errors.
Whenever one of the methods prepare
, init
or finalize
will throw an exception, the promise
initialized
will be rejected with a custom error type "ComponentInitError`. This error type do not
have a stack, because this stack would only include the trace inside of the construction construct.
It contains two properties with more informations:
cause
: Contains the origin error that was thrown. If an error object was thrown you will find
here the relevant stack informations. component
: The component instance that throwed the
error.