Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Javascript Synchron

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Javascript Synchron

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

      Hallo,

      ich habe die Möglichkeit gefunden die Befehle im Javascript adapter synchron auszuführen:

      Es wird so was möglich sein:

      setState('A', true);
      sleep(2000); <= sehr ungenau
      setState('A', false);
      
      

      Dabei müssen die synchrone Funktionen anders heißen.

      mir fehlt nicht anders ein, als Suffix Sync

      setStateSync
      createStateSync
      setObjectSync
      extendObjectSync
      ...
      sleep
      
      

      Fehlt jemandem bessere Idee ein? Man kann noch statt callback einfach true schreiben oder ..

      setStateEx, 
      setStateS, 
      setState("A", val, ack, isSync (nicht callback))
      
      
      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Sync am Namen anzuhängen wäre zumindestens Kompatibel mit nodejs (siehe File-kram). Wäre dafür

        1 Reply Last reply Reply Quote 0
        • ruhr70
          ruhr70 last edited by

          Kann man auch mehr als einen Daumen hoch vergeben? 😄

          1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 last edited by

            EIne alternative ist die Frage "was sollte für die User der Standard sein"?

            ALso Vllt "setState" -> syncron und setStateAsync für die Profis? 🙂

            1 Reply Last reply Reply Quote 0
            • P
              Pman last edited by

              @apollon77:

              EIne alternative ist die Frage "was sollte für die User der Standard sein"?

              ALso Vllt "setState" -> syncron und setStateAsync für die Profis? 🙂 `
              Damit würdest du jetzt alle jemals geschriebenen Skripte inkompatibel machen, ich glaube dafür ist es zu spät. :lol:

              1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 last edited by

                Oder sonderhandlung das sobald eine callback-Funktion beim aufruf verwendet wird es async wird 🙂

                Die meisten "aktuellen Skripte "behaupte ich mal gehen von einer synchronen ausführung aus …

                1 Reply Last reply Reply Quote 0
                • L
                  looxer01 last edited by

                  Hi,

                  ich habe es bisher vermieden states anzulegen oder zu aendern und anschliessend zu verwenden oder abzufragen, zumindest innerhalb der gerade laufenden Routinen.

                  Der synchrone Ablauf hat Vorteile, wenn es Abhängigkeiten gibt aber m.E. eine möglicherweise erhebliche Performanceeinbuße.

                  Daher würde ich nicht unbedingt standardmaessig auf synchron umschalten. Oder denke ich falsch ?

                  vG Looxer

                  1 Reply Last reply Reply Quote 0
                  • Thisoft
                    Thisoft last edited by

                    Das finde ich super, dass jetzt die Möglichkeit der synchronen Abarbeitung geschaffen wird 😄 😄 😄

                    Ich wäre eindeutig für das Suffix "Sync". Damit bleibt die Kompatibilität gewahrt und man sieht auf Anhieb was man verwendet hat. Ein (optionaler) Parameter beim Aufruf wäre zwar auch eine gangbare Möglichkeit - finde ich aber wesentlich unübersichtlicher als die Variante mit Suffix.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      @Thisoft:

                      Ich wäre eindeutig für das Suffix "Sync". Damit bleibt die Kompatibilität gewahrt und man sieht auf Anhieb was man verwendet hat. Ein (optionaler) Parameter beim Aufruf wäre zwar auch eine gangbare Möglichkeit - finde ich aber wesentlich unübersichtlicher als die Variante mit Suffix. `
                      Dem schließe ich mich an.
                      @looxer01:

                      …eine möglicherweise erhebliche Performanceeinbuße.

                      Daher würde ich nicht unbedingt standardmaessig auf synchron umschalten. Oder denke ich falsch ? `
                      Sehe ich auch so. Benötigt man die synchrone Variante wirklich ?

                      1 Reply Last reply Reply Quote 0
                      • Bluefox
                        Bluefox last edited by

                        Ich sehe die Anmerkung von apollon77 mit kein callback als gangbar.

                        1 Reply Last reply Reply Quote 0
                        • Jey Cee
                          Jey Cee Developer last edited by

                          Ich bin auch für Suffix 'sync'. Das drückt am deutlichsten aus was passiert und ist für Anfänger sicher einfach zu verstehen.

                          Gesendet von meinem m8 mit Tapatalk

                          1 Reply Last reply Reply Quote 0
                          • frankjoke
                            frankjoke last edited by

                            Ich finde es eine gute Idee aber leider wird es nicht wirklich Synchron und einige Lewute noch mehr verwirren.

                            Es scheint so zu funktionieren dass nur die ioBroker-Funktionen synchron sind, aber nicht der restliche code.

                            Sorry, zu früh abgesendet:

                            Beispiel:

                            function inc(xxx) {
                            	var x = getState(xxx).val
                            	x = x +1;
                            	setState(xxx,x);
                            }
                            
                            inc(abc);
                            inc(abc);
                            
                            wird nicht funktionieren.
                            
                            

                            bin eher dafür neue Dinge mit neuen NodeJS-Sprachversionen zu implementieren,

                            Ein Beispiel sind Promises (wie ich sie verwende) oder auch in der ganz neuen Version Yields.

                            1 Reply Last reply Reply Quote 0
                            • Bluefox
                              Bluefox last edited by

                              @fsjoke:

                              Ich finde es eine gute Idee aber leider wird es nicht wirklich Synchron und einige Lewute noch mehr verwirren.

                              Es scheint so zu funktionieren dass nur die ioBroker-Funktionen synchron sind, aber nicht der restliche code.

                              Sorry, zu früh abgesendet:

                              Beispiel:

                              function inc(xxx) {
                              	var x = getState(xxx).val
                              	x = x +1;
                              	setState(xxx,x);
                              }
                              
                              inc(abc);
                              inc(abc);
                              
                              wird nicht funktionieren.
                              
                              

                              bin eher dafür neue Dinge mit neuen NodeJS-Sprachversionen zu implementieren,

                              Ein Beispiel sind Promises (wie ich sie verwende) oder auch in der ganz neuen Version Yields. `
                              Genau das wird gehen Synchron.

                              1 Reply Last reply Reply Quote 0
                              • frankjoke
                                frankjoke last edited by

                                @Bluefox:

                                Genau das wird gehen Synchron. `

                                Dann gibt's auc einen dicken 'Daumen'-hoch von mir, am besten mit Sync-Endung 🙂

                                1 Reply Last reply Reply Quote 0
                                • AlCalzone
                                  AlCalzone Developer last edited by

                                  Verstehe ich das richtig, dass das die Implementierung wird, die ich mir Anfang des Jahres gewünscht habe? Eine synchrone (Promise-) Kapselung um die asnychronen Methoden?

                                  Denke dann macht xxxSync() Sinn, ist vom Verständnis her analog zu den NodeJS-Libraries.

                                  1 Reply Last reply Reply Quote 0
                                  • Bluefox
                                    Bluefox last edited by

                                    @AlCalzone:

                                    Verstehe ich das richtig, dass das die Implementierung wird, die ich mir Anfang des Jahres gewünscht habe? Eine synchrone (Promise-) Kapselung um die asnychronen Methoden?

                                    Denke dann macht xxxSync() Sinn, ist vom Verständnis her analog zu den NodeJS-Libraries. `
                                    Ne.. Promise ist doch Asynchron.

                                    Es geht tatsächlich um synchrone Ausführung, damit die Leute, die aus Arduino- oder SPS- Welt kommen, immer noch zurecht kommen.

                                    1 Reply Last reply Reply Quote 0
                                    • AlCalzone
                                      AlCalzone Developer last edited by

                                      Ahhh…

                                      Na dann ist der Name xxxSync erst recht passend. Find ich super!

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      846
                                      Online

                                      31.7k
                                      Users

                                      79.8k
                                      Topics

                                      1.3m
                                      Posts

                                      10
                                      17
                                      2823
                                      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