Wutknubbel
Cadet 3rd Year
- Registriert
- Dez. 2014
- Beiträge
- 61
Hallo.
Ich schreibe gerade ein Programm welches mir Daten von OSM etc herunterladen soll.
Das ganze möchte ich mit Axios bewerkstelligen.
Die meisten Tutorials zu Axios arbeiten entweder mit async await oder mit axios.get().then(response=>{});
Bei beiden wegen habe ich das Problem die Funktion anscheind vorher fertig ist, bevor ich die Daten aus response bekomme.
Anbei etwas Code
Die Funktion fillBuffer erstellt mir Links zu einen TileServer und soll dann in einer Schleife mit getTile die Daten
Herunterladen, die Bilder sollten dann in einen Array gespeichert werden.
Der Abschnitt console.log("Kick") wird erst ausgeführt wenn die Schleife von oben durch ist.
Ich bin noch nicht so extrem gut in Javascript und Node.js.
Vielleicht kann mich jemand auf den rechten pfad führen ?
Grüße
Wutknubbel
Ich schreibe gerade ein Programm welches mir Daten von OSM etc herunterladen soll.
Das ganze möchte ich mit Axios bewerkstelligen.
Die meisten Tutorials zu Axios arbeiten entweder mit async await oder mit axios.get().then(response=>{});
Bei beiden wegen habe ich das Problem die Funktion anscheind vorher fertig ist, bevor ich die Daten aus response bekomme.
Anbei etwas Code
Javascript:
fillBuffer() {
var downMap = this.tileMap.generateDownloadMap();
downMap.forEach(element => {
var pattern = {};
if(this.useDomains()) {
pattern.s = this.getSubDomain(element.x, element.y);
}
if(this.useKey()) {
pattern.k = this.getApiKey();
}
pattern.x = element.x;
pattern.y = element.y;
pattern.z = element.z;
var outUrl = this.#fmtUrl(this.url, pattern);
this.getTile(outUrl, element, this.tileMap.getTileBuffer());
});
}
getTile(url, params, buffer) {
console.log("Downloading Tile "+params.lx+"/"+params.ly);
var aXHeaders = {
headers: {
'Accept': '*/*',
'Accept-Encoding': 'gzip',
'User-Agent': this.userAgent,
},
//'gzip': true,
'encoding': null,
responseType: 'arraybuffer'
};
axios.get(url, aXHeaders).then(response => {
console.log("Kick");
this.tileMap.fillBuffer(params.lx, params.ly, response.data);
});
}
Die Funktion fillBuffer erstellt mir Links zu einen TileServer und soll dann in einer Schleife mit getTile die Daten
Herunterladen, die Bilder sollten dann in einen Array gespeichert werden.
Der Abschnitt console.log("Kick") wird erst ausgeführt wenn die Schleife von oben durch ist.
Ich bin noch nicht so extrem gut in Javascript und Node.js.
Vielleicht kann mich jemand auf den rechten pfad führen ?
Grüße
Wutknubbel