Merge pull request #33150 from AlCalzone/iobroker/async-events

[iobroker] Allow async methods as adapter event handlers
This commit is contained in:
Andrew Casey
2019-02-19 12:50:05 -08:00
committed by GitHub
2 changed files with 15 additions and 5 deletions
+5 -5
View File
@@ -1627,11 +1627,11 @@ declare global {
removeAllListeners(event?: "ready" | "unload" | "stateChange" | "objectChange" | "message"): this;
} // end interface Adapter
type ReadyHandler = () => void;
type ObjectChangeHandler = (id: string, obj: ioBroker.Object | null | undefined) => void;
type StateChangeHandler = (id: string, obj: State | null | undefined) => void;
type MessageHandler = (obj: Message) => void;
type UnloadHandler = (callback: EmptyCallback) => void;
type ReadyHandler = () => void | Promise<void>;
type ObjectChangeHandler = (id: string, obj: ioBroker.Object | null | undefined) => void | Promise<void>;
type StateChangeHandler = (id: string, obj: State | null | undefined) => void | Promise<void>;
type MessageHandler = (obj: Message) => void | Promise<void>;
type UnloadHandler = (callback: EmptyCallback) => void | Promise<void>;
type EmptyCallback = () => void;
type ErrorCallback = (err?: string) => void;
+10
View File
@@ -20,6 +20,16 @@ adapter
;
adapter.removeAllListeners();
// Test adapter constructor options
let adapterOptions: ioBroker.AdapterOptions = {
name: "foo",
ready: readyHandler,
stateChange: stateChangeHandler,
objectChange: objectChangeHandler,
message: messageHandler,
unload: unloadHandler,
};
function readyHandler() { }
function stateChangeHandler(id: string, state: ioBroker.State | null | undefined) {