NEWS
Mehrere Abfragen auf einmal abfragen
-
Hallo, ich habe folgende Abfrage, die auch einwandfrei funktioniert.
for(const device in this.devices){ if(this.devices[device].historicValues){ for(const value in this.devices[device].historicValues){ for(const type in this.devices[device].historicValues[value].type){ for(const timeBase of Object.values(this.timeBases)){ myUrl = `http://${this.config.address}:${this.config.port}/rest/1/projects/${this.config.projectname}/devices/${device}/hist/energy/`; myUrl += `${value}/`; myUrl += `${type}/.json?start=${timeBase.startstring}&end=${timeBase.endstring}`; this.log.silly(`${myUrl} was send to gridVis`); const result = await axios.get(myUrl,{timeout: this.config.timeout}); this.log.silly(`result.data: ${JSON.stringify(result.data)}`); if(result.status === 200){ // OK => write data into internal state if((result.data.energy || result.data.energy === 0)){ // check present or equal 0 (a value must be present => also value == 0) if(!isNaN(result.data.energy)){ // check not equal to NaN this.setStateAsync(`${this.internalIds.devices}.${device}.${this.internalIds.historicValues}.${value}.${type}_${timeBase.namestring}`,result.data.energy,true); } else{ this.setStateAsync(`${this.internalIds.devices}.${device}.${this.internalIds.historicValues}.${value}.${type}_${timeBase.namestring}`,{q:1, c:"GridVis sends value NaN"},true); this.log.info(`${device}.${value}.${type} is NaN -- (${this.devices[device].deviceName})`); } } } } } } } }Ichdurchlaufe also die Elemente und rufe immer einen Wert bei einem API ab, warte auf das Ergebnis und dann kommt der nächste Wert dran.
Könnte ich das auch mit
await Promise.allirgendwie so hin bekommen, dass ich alle Anfragen starten kann und dann, wenn alle fertig sind darauf reagieren kann?
Dann könnte ich aber nicht nur1 result anlegen, sondern müsste mehrere anlegen, oder?
Es müssten auch die einzelnen werte der Schleifen gespeichert werden, oder?Wäre es mit einem
.then()einfacher zu realisieren und wären dann nicht auch im .then() teil die Variablen der in der Schleifen enthaltenen Variablen noch da?
ich glaube mit
.thensollte es gehen, wenn nötig. oder?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden