Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] function in function

    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

    [gelöst] function in function

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

      Hi,

      habe folgende Herausforderung:
      function2 soll in function1 ausgeführt werden.
      function1 und 2 sind auf der gleichen Ebene definiert.

      -> muss ich die function2 der function1 extra übergeben? Oder ist die function2 sowieso global?

      bahnuhr paul53 2 Replies Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active @ptr last edited by

        @ptr sagte in function in function:

        Hi,

        habe folgende Herausforderung:
        function2 soll in function1 ausgeführt werden.
        function1 und 2 sind auf der gleichen Ebene definiert.

        -> muss ich die function2 der function1 extra übergeben? Oder ist die function2 sowieso global?

        Zeig mal dein Beispiel.
        und mit global hat das gar nichts zu tun.

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

          @ptr sagte: muss ich die function2 der function1 extra übergeben?

          Nein, nur aufrufen.

          EDIT: Prinzip:

          function function2(x) {
              // x auswerten
          }
          
          function function1() {
              let a = 2;
              function2(a);
          }
          
          function1(); // Aufruf bei Skriptstart
          
          P 1 Reply Last reply Reply Quote 0
          • P
            ptr @paul53 last edited by

            @paul53 und @bahnuhr: Habe nun den Rechner da und kann das ganze Szenario darstellen. Vielleicht gibt es ja noch andere Lösungswege...:

            https://forum.iobroker.net/topic/62228/multitimeout-wie-function-übergeben-von-blockly-in-js

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @ptr last edited by

              @ptr
              Funktioniert etwas nicht?

              P 1 Reply Last reply Reply Quote 0
              • P
                ptr @OliverIO last edited by ptr

                @oliverio meine Antwort war ggf. etwas missverständlich formuliert. Die Antwort von paul53 funktioniert.

                Unter dem Link versuche ich eine funktion in einer funktion über Ihren Namen aufzurufen.
                Dabei übergebe ich den Namen als string, damit Blockly nicht automatisch die Bezeichnung der Variable ändert, falls diese die gleiche Bezeichnung wie die Funktion hat. -> wie ich dann wieder eine funktionsaufruf aus dem String mache ist aktuell das hauptproblem. - und dafür könnte es z.B. auch andere Lösungen geben...

                Codierknecht 1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @ptr last edited by Codierknecht

                  @ptr
                  Nur so als Hinweis aus meiner langjährigen beruflichen Erfahrung:
                  Wenn ein System zu komplex wird, lässt es sich kaum noch warten. Selbst kleinste Änderungen führen dann mit schöner Regelmäßigkeit zu fatalen Fehlern, die aber aufgrund der Komplexität nur schwer zu finden sind.
                  Die "eierlegende Wollmilchsau" ist also nicht unbedingt die Lösung aller Probleme, sondern verursacht oft nur noch weitere.
                  Je komplexer ein System/Konstrukt, desto eher knallt es vor die Wand. Und nach releativ kurzer Zeit findet selbst der Entwickler nicht mehr ohne weiteres die Ursache.

                  Aufgaben lieber in kleine Häppchen aufteilen, die sich gut lesen, warten und erweitern lassen.
                  "... does one thing well" aus dem CleanCode-Umfeld beschreibt das eigentlich ganz gut. Ein Programm (-abschnitt) / eine Funktion soll genau eine Sache machen - und die möglichst gut, schnell und fehlerfrei.

                  Die Scripte mögen zwar jeweils ein wenig kleiner werden, aber das unübersichtliche Konstrukt dahinter wäre mir persönlich ein Graus. Dann lieber konventionell jeweils im Script definieren. Dann weiß man wenigstens, wie etwas funktioniert und wo man einen Fehler suchen muss.

                  Ich befürchte, Du verrennst Dich da ... prove me wrong

                  P 1 Reply Last reply Reply Quote 0
                  • P
                    ptr @Codierknecht last edited by ptr

                    @codierknecht du hast Recht. Einfach ist einfach besser. Wenn es einen Timeout-Block in Blockly mit variablem Namen gäbe - wäre alles simpel gelöst.

                    Habe ich nicht gefunden, daher versuche ich das nachzustellen. Vielleicht hast du eine Idee wie ich das simpler hinbekomme.
                    Ich habe einen dp-Selektor-trigger der für viele Räume auf dessen Bewegungsmelder hört.
                    -> ich brauche zu jedem einen individuelles Timeout. vorstellbar, weil das Licht nach 1 Minute erst wieder ausgehen soll.

                    Anderes Beispiel: Tür öffnet -> Anwesenheit setzen. Timeout 15sek: Falls keine Bewegungssensor im Raum=true, dann -> Anwesenheit=false.

                    Von diesen Anwendungsfällen habe ich ungefähr eine Handvoll. Daher die Idee, ein object pro Skript, dass mir individuelle Timeouts - abhängig von Trigger - benennt.

                    Es geht um das Thema: https://forum.iobroker.net/topic/62228/multitimeout-wie-function-übergeben-von-blockly-in-js

                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @ptr last edited by

                      @ptr sagte in [gelöst] function in function:

                      Es geht um das Thema: https://forum.iobroker.net/topic/62228/multitimeout-wie-function-übergeben-von-blockly-in-js

                      Hatte ich schon gelesen und antworte daher dort ...

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      858
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      5
                      9
                      292
                      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