Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Promises mit Typescript

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Promises mit Typescript

    This topic has been deleted. Only users with topic management privileges can see it.
    • Benjamin Häublein
      Benjamin Häublein Developer last edited by

      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 🙂

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      733
      Online

      31.6k
      Users

      79.5k
      Topics

      1.3m
      Posts

      1
      1
      175
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo