NEWS
Variable in request-Aufruf
-
Wenn die variable z ausserhalb beider requests deklariert ist, kannst du von überall drauf zugreifen.
-
@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.
-
@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); }); });
-
@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 -
request() in einer Schleife auszuführen, ist keine gute Idee. Wozu soll das dienen ?
-
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.
-
@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.
-
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?
-
@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(); });
-
@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.