Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Verständnisproblem Parameter bei on/subscribe

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Verständnisproblem Parameter bei on/subscribe

Scheduled Pinned Locked Moved JavaScript
3 Posts 2 Posters 269 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    centrofly
    wrote on last edited by centrofly
    #1

    Hallo zusammen,

    ich habe ein Verständnisproblem zu on/subscribe, hängt wahrscheinlich damit zusammen, dass ich mich gerade erst in JS einarbeite und noch nicht alle Konzepte durchdrungen habe... Ich habe mir die Doku durchgelesen, aber daraus wird es nicht so recht klar.

    Wenn ich auf die Änderung eines States einen Handler registrieren möchte, dann kann ich dies tun über

    subscribe(myState, function(obj){
      // do something
    });
    

    "obj" ist nach meinem Verständnis dabei das Objekt des States, welches sich geändert hat.

    Man sieht in anderen Scripten aber auch, dass statt "obj" sowas wie "data" übergeben wird. Kann ich den Parameter also einfach irgendwie benennen?

    Und könnten ich auch weitere Parameter übergeben?

    subscribe(myState, function(obj, myParameter){
      // do something
    });
    

    Aber dann wäre mir nicht klar, wie die javascript engine dann die Bedeutung der Parameter unterscheiden kann. Oder ist immer der erste Paramater das State Objekt, egal wie der Paramater heisst?

    Viele Grüße
    Jan

    AlCalzoneA 1 Reply Last reply
    0
    • C centrofly

      Hallo zusammen,

      ich habe ein Verständnisproblem zu on/subscribe, hängt wahrscheinlich damit zusammen, dass ich mich gerade erst in JS einarbeite und noch nicht alle Konzepte durchdrungen habe... Ich habe mir die Doku durchgelesen, aber daraus wird es nicht so recht klar.

      Wenn ich auf die Änderung eines States einen Handler registrieren möchte, dann kann ich dies tun über

      subscribe(myState, function(obj){
        // do something
      });
      

      "obj" ist nach meinem Verständnis dabei das Objekt des States, welches sich geändert hat.

      Man sieht in anderen Scripten aber auch, dass statt "obj" sowas wie "data" übergeben wird. Kann ich den Parameter also einfach irgendwie benennen?

      Und könnten ich auch weitere Parameter übergeben?

      subscribe(myState, function(obj, myParameter){
        // do something
      });
      

      Aber dann wäre mir nicht klar, wie die javascript engine dann die Bedeutung der Parameter unterscheiden kann. Oder ist immer der erste Paramater das State Objekt, egal wie der Paramater heisst?

      Viele Grüße
      Jan

      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      wrote on last edited by
      #2

      @centrofly sagte in Verständnisproblem Parameter bei on/subscribe:

      Kann ich den Parameter also einfach irgendwie benennen
      Oder ist immer der erste Paramater das State Objekt, egal wie der Paramater heisst?

      Ja

      @centrofly sagte in Verständnisproblem Parameter bei on/subscribe:

      Und könnten ich auch weitere Parameter übergeben?

      Du kannst grundsätzlich beliebig viele Parameter dazuschreiben, es bringt dir nur nichts. Da die Callback-Funktion vom Skript-Adapter aufgerufen wird, übergibt sie nur den ersten Parameter (hier obj genannt).

      Wenn du auf Variablen von außerhalb der Callback-Funktion zugreifen willst, kannst du sie einfach nutzen:

      const myParameter = 5;
      //...
      subscribe(myState, function(obj) {
        // do something
        log(myParameter); // gibt 5 im Log aus
      });
      

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      C 1 Reply Last reply
      0
      • AlCalzoneA AlCalzone

        @centrofly sagte in Verständnisproblem Parameter bei on/subscribe:

        Kann ich den Parameter also einfach irgendwie benennen
        Oder ist immer der erste Paramater das State Objekt, egal wie der Paramater heisst?

        Ja

        @centrofly sagte in Verständnisproblem Parameter bei on/subscribe:

        Und könnten ich auch weitere Parameter übergeben?

        Du kannst grundsätzlich beliebig viele Parameter dazuschreiben, es bringt dir nur nichts. Da die Callback-Funktion vom Skript-Adapter aufgerufen wird, übergibt sie nur den ersten Parameter (hier obj genannt).

        Wenn du auf Variablen von außerhalb der Callback-Funktion zugreifen willst, kannst du sie einfach nutzen:

        const myParameter = 5;
        //...
        subscribe(myState, function(obj) {
          // do something
          log(myParameter); // gibt 5 im Log aus
        });
        
        C Offline
        C Offline
        centrofly
        wrote on last edited by
        #3

        @AlCalzone Super, vielen Dank für die schnell Erklärung :-)

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        Support us

        ioBroker
        Community Adapters
        Donate

        693

        Online

        32.7k

        Users

        82.4k

        Topics

        1.3m

        Posts
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Home
        • Recent
        • Tags
        • Unread 0
        • Categories
        • Unreplied
        • Popular
        • GitHub
        • Docu
        • Hilfe