Ich habe eine Methode zum Lesen von Daten von Link. Ich versuche auf Bilder mit einer Breite von mehr als 600 zuzugreifen, aber alert (this.images.length); dies immer Null geben und diese ausgeführt wurde vor meinem Anruf AnrufBehandlung Rückruf in Winkel 2
readLink(url: string) {
this.isBusy = true;
this._http.get(`${this._helper.baseURL}/api/post/readlink?url=${encodeURIComponent(url)}`)
.subscribe(
data => {
this.processResponse(data, url);
},
(err: HttpErrorResponse) => {
}
);
}
Verfahren die Anforderungsdaten zu verarbeiten
processResponse(result, url) {
if (result.images != null && result.images.length > 0) {
result.images.forEach(el => {
this.getMeta(el, function (res) {
this.images.push(res);
this.currentImage = this.images[0];
});
});
}
alert(this.images.length); // this always give zero and this was executed before my call bakc
}
diese Funktion zurückrufen zurückgerufen gültige Bilder
getMeta(url, callback) {
const img = new Image();
img.src = url;
img.onload = function() {
if (img.width > 260 && img.height > 150) {
callback(url);
}
};
zu erhalten
}
Dank es funktioniert jetzt! – user1328004
froh zu hören du könntest es funktionieren lassen :) –
@ GünterZöchbauer +1 für die Antwort wenn wir Funktion() nicht verwenden sollen. Ich war verwirrt und nicht für so viele Tage klar :) –