NEWS
[Vorlage] Promises mit Typescript
-
Falls außer mir auch jemand mittels des JavaScript Adapters mit TypeScript entwickeln möchte und dabei auch noch Promises anstelle der Callbacks einsetzen möchte (siehe https://forum.iobroker.net/topic/5228/vorschlag-core-api-und-javascript-adapter-promises), der kann das wie folgt machen, ohne dass es Probleme mit den Typen gibt:
function promisify<T>(fn, context = undefined): (...args) => Promise<T> { return function (...args): Promise<T> { context = context || this; return new Promise<T>(function (resolve, reject) { fn.apply(context, [...args, function (error, result) { if (error) return reject(error); else return resolve(result); }]); }); } } var getStateAsync = promisify<iobJS.State<any>>(getState);
Ich habe etwas rumfrickeln müssen, bis es gepasst hat, bin mit dem Ergebnis aber glücklich