Ich möchte Bildmaße erhalten und danach weitere Aktionen ausführen. Da image onload asynchron ist, habe ich beschlossen, alles in dem Onload-Aufruf zu tun. Das ist, was ich habe jetzt:Holen Sie externe Variablen in image.onload
function getMeta(url, callback) {
var img = new Image();
img.src = url;
img.onload = function() { callback(this.width, this.height); };
}
// Ajax-Antwort dieses einige Informationen:
function(res) {
var totalFound = res.data.length;
var photo = [];
for (var i = 0; i < totalFound; i++) {
var full = res.data[i].urls.raw;
var thumb = res.data[i].urls.thumb;
var user = res.data[i].user.name;
var links = res.data[i].user.links.html;
getMeta(thumb,function(width, height) {
console.log(width + 'px ' + height + 'px')
photo.push({
full: full,
thumb: thumb,
user: author,
link: links
width: this.width
});
});
};
};
Das Problem ist, dass Variablen voll, Daumen, Benutzer und Links in dem getMeta Rückruf nicht verfügbar sind. Wie komme ich darüber hinweg?
Zusätzlich zur Lösung in der Antwort sollte 'user: author'' user: user' sein, 'link: links' fehlt ein Komma und' this.width' sollte 'width' sein: https://jsfiddle.net/qdnw9f5w/ –