Class “Listeners”
Objects of the type Listeners
provide methods to manage listeners and trigger events. They encapsulate the tabris event system in a way that is more convenient to use with TypeScript and the ES2017 async
/await
feature.
Type: | Listeners<EventData> extends Object |
Generics: | EventData: A plain object containing the data to be passed to the listeners in addition to target , type and timeStamp . Must be a subclass of {target: object} and defaults to undefined . |
Constructor: | public |
Singleton: | No |
Namespace: | tabris |
Direct subclasses: | ChangeListeners |
JSX Support: | No |
Constructor
new Listeners(target, type)
Parameter | Type | Description |
---|---|---|
target | object |
|
type | string |
Methods
addListener(listener)
Registers a listener to be notified by new events. Each listener can only be added once. Returns the target object. Instances of Listeners
can also be called directly as a function to register a new listener. I.e. widget.onResize(listener);
is the same as widget.onResize.addListener(listener);
It is also the same as widget.on('resize', listener');
, but with better TypeScript support.
Parameter | Type | Description |
---|---|---|
listener | Function |
The listener function called with the event object |
Returns: this.target
once(listener)
Notifies the given listener the next time an event is issued, but not afterwards. Returns the target object.
Parameter | Type | Description |
---|---|---|
listener | Function |
The listener function called with the event object |
Returns: this.target
promise()
Returns a promise that resolves the next time an event is issued. The dispatched event object will be used as the resolved value.
Returns: Promise<EventObject>
removeListener(listener)
Deregisters a listener, it will not be notified of future events. Returns the target object.
Parameter | Type | Description |
---|---|---|
listener | Function |
Returns: this.target
trigger()
Issues a plain event object to all registered listeners with a newly constructed event object.
Returns: this.target
trigger(eventData?)
Issues an event object to all registered listeners. If an uninitialized (not previously issued) instance of EventObject
is given as the argument it will be issued directly as-is. Any other type of object (including an already initialized/previously issued event object) will be copied to create a new event object. This allows for simple event re-routing.
Parameter | Type | Description |
---|---|---|
eventData | EventData |
Optional. |
Returns: this.target
triggerAsync(eventData?)
Like trigger
, but returns a promise. The promise will resolve when all asynchronous listeners (if any) have resolved. If none of the listeners are asynchronous (return a promise) this method works just like trigger()
. Useful for unit testing.
Parameter | Type | Description |
---|---|---|
eventData | object |
Optional. |
Returns: Promise
Properties
target
The object that issues the events, e.g. a widget.
Type: | object |
Settable: | No |
type
The event type. This value will be set in the type
field of the event object given to the listener. It is the same value used by the on and trigger methods.
Type: | string |
Settable: | No |