Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Variable in request-Aufruf

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.6k

Variable in request-Aufruf

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
11 Beiträge 3 Kommentatoren 589 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • a200A Offline
    a200A Offline
    a200
    schrieb am zuletzt editiert von a200
    #1

    hi,

    um Informationen von einer externen Seite abzurufen nutze ich den request. Die Aufrufe sind mehrmals verschachtelt, weil ich Informationen (z.B. ein Token) aus dem ersten Request in den zweiten einbauen muss.

    Das funktioniert und die Problematik der asynchronen Aufrufe ist mir auch bekannt. Aber jetzt brauch ich aber eine weitere Variable (hier z) aus der vorherigen Abfrage, an der ich in der zweiten nicht drankomme.

    url1 = "...";
    request(url1, function (error, response, body) {
      z = 1;
      url2 = "...";
      request(url2, function (error, response, body) {
      log(z);
      });
    });
    

    Wie kann ich das vernünftig lösen?

    IoBroker auf QNAP TS-451, Raspi und NUC

    1 Antwort Letzte Antwort
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #2

      Wenn die variable z ausserhalb beider requests deklariert ist, kannst du von überall drauf zugreifen.

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      a200A 1 Antwort Letzte Antwort
      0
      • blauholstenB blauholsten

        Wenn die variable z ausserhalb beider requests deklariert ist, kannst du von überall drauf zugreifen.

        a200A Offline
        a200A Offline
        a200
        schrieb am zuletzt editiert von
        #3

        @blauholsten sagte in Variable in request-Aufruf:

        Wenn die variable z ausserhalb beider requests deklariert ist, kannst du von überall drauf zugreifen.

        Ja, allerdings wird z aus dem ersten request ermittelt und soll verarbeitet werden.

        IoBroker auf QNAP TS-451, Raspi und NUC

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @a200 sagte in Variable in request-Aufruf:

          allerdings wird z aus dem ersten request ermittelt und soll verarbeitet werden.

          Wo ist das Problem ? Umgekehrt wäre es schwieriger. Bitte richtig deklarieren.

          const url1 = "...";
          var z;
          request(url1, function (error, response, body) {
            z = 1;
            var url2 = "...";
            request(url2, function (error, response, body) {
            log(z);
            });
          });
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • a200A Offline
            a200A Offline
            a200
            schrieb am zuletzt editiert von
            #5

            @paul53 sagte in Variable in request-Aufruf:

            const url1 = "...";

            var k;
            const url2 = "...";
            const url2 = "...";
            
            request(url1, function (error, response, body) {
            	for(k=0; k<2; k++) {
                		request(url2, function (error, response, body) {
                			log("k = " + k);
            		});
            	}
            });
            

            k=2
            Wie bekomme ich die in dem ersten Unter-Request k=0 und in dem zweiten Unter-Request k=0

            IoBroker auf QNAP TS-451, Raspi und NUC

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              request() in einer Schleife auszuführen, ist keine gute Idee. Wozu soll das dienen ?

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              a200A 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                request() in einer Schleife auszuführen, ist keine gute Idee. Wozu soll das dienen ?

                a200A Offline
                a200A Offline
                a200
                schrieb am zuletzt editiert von
                #7

                @paul53

                im vorherigen aufrufen ermittle ich die anzahl und urls, die ich aufrufen soll. Um alle Dateien (k) abzurufen wollte ich k requests laufen haben, die jeweils einen anderen Datenpunkt füllen.

                IoBroker auf QNAP TS-451, Raspi und NUC

                paul53P 1 Antwort Letzte Antwort
                0
                • a200A a200

                  @paul53

                  im vorherigen aufrufen ermittle ich die anzahl und urls, die ich aufrufen soll. Um alle Dateien (k) abzurufen wollte ich k requests laufen haben, die jeweils einen anderen Datenpunkt füllen.

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @a200 sagte in Variable in request-Aufruf:

                  Um alle Dateien (k) abzurufen wollte ich k requests laufen haben, die jeweils einen anderen Datenpunkt füllen.

                  Dann erstelle eine Funktion mit dem url2-request, die sich aus der Callback-Funktion solange selbst aufruft, bis die ermittelte Anzahl erreicht ist.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  a200A 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @a200 sagte in Variable in request-Aufruf:

                    Um alle Dateien (k) abzurufen wollte ich k requests laufen haben, die jeweils einen anderen Datenpunkt füllen.

                    Dann erstelle eine Funktion mit dem url2-request, die sich aus der Callback-Funktion solange selbst aufruft, bis die ermittelte Anzahl erreicht ist.

                    a200A Offline
                    a200A Offline
                    a200
                    schrieb am zuletzt editiert von
                    #9

                    @paul53

                    aus dem body des request(url1) erhalte ich a) die Anzahl der Dateien und b) die jeweiligen urls der Dateien. Kannst du mir bitte template dafür erstellen?

                    IoBroker auf QNAP TS-451, Raspi und NUC

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • a200A a200

                      @paul53

                      aus dem body des request(url1) erhalte ich a) die Anzahl der Dateien und b) die jeweiligen urls der Dateien. Kannst du mir bitte template dafür erstellen?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #10

                      @a200 sagte in Variable in request-Aufruf:

                      und b) die jeweiligen urls der Dateien.

                      url2 ist also nicht konstant, sondern bei jedem neuen Aufruf anders ?
                      Dann versuche es etwa so:

                      const url1 = "...";
                      
                      var url2 = [];
                      var k, anzahl;
                      
                      function getData() {
                         request(url2[k], function (error, response, body) {
                            // body verarbeiten
                            k++;
                            if(k < anzahl) getData();
                         });
                      }
                      
                      request(url1, function (error, response, body) {
                         // anzahl ermitteln und Array url2 füllen 
                         k = 0;
                         getData();   
                      });
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      a200A 1 Antwort Letzte Antwort
                      1
                      • paul53P paul53

                        @a200 sagte in Variable in request-Aufruf:

                        und b) die jeweiligen urls der Dateien.

                        url2 ist also nicht konstant, sondern bei jedem neuen Aufruf anders ?
                        Dann versuche es etwa so:

                        const url1 = "...";
                        
                        var url2 = [];
                        var k, anzahl;
                        
                        function getData() {
                           request(url2[k], function (error, response, body) {
                              // body verarbeiten
                              k++;
                              if(k < anzahl) getData();
                           });
                        }
                        
                        request(url1, function (error, response, body) {
                           // anzahl ermitteln und Array url2 füllen 
                           k = 0;
                           getData();   
                        });
                        
                        a200A Offline
                        a200A Offline
                        a200
                        schrieb am zuletzt editiert von a200
                        #11

                        @paul53 sagte in Variable in request-Aufruf:

                        @a200 sagte in Variable in request-Aufruf:

                        und b) die jeweiligen urls der Dateien.

                        url2 ist also nicht konstant, sondern bei jedem neuen Aufruf anders ?
                        Dann versuche es etwa so:

                        Super, Danke. Jetzt geht es.

                        Das Ergebnis kann hier: https://forum.iobroker.net/post/228883 gesehen werden.

                        IoBroker auf QNAP TS-451, Raspi und NUC

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        821

                        Online

                        32.4k

                        Benutzer

                        81.4k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe