Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. onMessage aktuell auch ohne result async möglich?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    onMessage aktuell auch ohne result async möglich?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Ben1983
      Ben1983 last edited by

      Hallo,
      man konnte ja bei asynchronen Benutzen von

      onMessage
      

      mit

      messageToAsync
      

      "nur" Objekte zurückgeben, die ein

      result
      

      attribut enthalten haben.

      Eben habe ich es mal versucht und ich konnte über

      callback(myNumber);
      

      auch einfach irgendeinen Wert zurücksenden.

      @haus-automatisierung ist das seit einer bestimmten Version möglich?

      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @Ben1983 last edited by

        @ben1983 Müsste ich mir im Code anschauen warum das geht und in welchen Situationen. Am besten an die Doku halten und nicht hoffen, dass das immer klappt

        Ben1983 1 Reply Last reply Reply Quote 0
        • Ben1983
          Ben1983 @haus-automatisierung last edited by Ben1983

          @haus-automatisierung hatte nichts gefunden, dass es auf jeden Fall result geben muss.
          Hatte es noch im Hinterkopf, aber dachte ich Versuch es mal.
          Oder gibt’s ne Stelle, wo steht, dass es result geben MUSS?

          Also das:

          onMessage('myTestMessage',async (data,callback)=>{
              callback("OK");
          });
          
          log(JSON.stringify(await messageToAsync('myTestMessage')));
          

          Liefert mir den Log:

          javascript.0	07:13:12.354	info	script.js.___Funktionstests.MessagAsync: "OK"
          
          haus-automatisierung 2 Replies Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @Ben1983 last edited by haus-automatisierung

            @ben1983 sagte in onMessage aktuell auch ohne result async möglich?:

            hatte nichts gefunden, dass es auf jeden Fall result geben muss.

            https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#onmessage

            Wo steht das Gegenteil? Aber ja, im Beispiel zu onMessageUnregister wird ja auch nur ein number Wert an die Callback-Funktion gegeben. Müsste ich mir im Detail anschauen wie gesagt.

            Ich halte mich immer an das Standard-Konzept von sendTo.

            1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @Ben1983 last edited by

              @ben1983 Gerade die Funktion mit Promise schaut ja nach dem error Attribut und würde entsprechend einen Fehler werfen, welcher mit try/catch oder eben mit .catch behandelt werden kann. Das würde dir ja dann verloren gehen.

              onMessage('myTestMessage', (data, callback) => {
                  callback({ result: data.bla, error: 'das hat nicht geklappt' });
              });
              
              // Callback
              messageTo('myTestMessage', { bla: 1234 }, (data) => {
                  if (!data.error) {
                      console.info(data.result);
                  } else {
                      console.error(data.error);
                  }
              });
              
              // Promise
              messageToAsync('myTestMessage', { bla: 1234 })
                  .catch((reason) => {
                      console.error(reason)
                  });
              
              Ben1983 1 Reply Last reply Reply Quote 0
              • Ben1983
                Ben1983 @haus-automatisierung last edited by Ben1983

                @haus-automatisierung OK.
                Also besser immer mit

                {error: irgendwas....}
                

                oder

                {result: irgendwas....}
                

                arbeiten, richtig?

                Aber solange es keinen error gibt, darf auch das attribut nicht vorkommen, oder müsste false sein, oder?

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @Ben1983 last edited by

                  @ben1983 Kannst auch null setzen

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  822
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  208
                  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