1
我想循環訪問對象數組中的image_urls列表,並將它們轉換爲base64以供以後處理。當將對象數組中的圖像URL轉換爲base64時,請勿在循環中創建函數
這是到目前爲止我的代碼:
function findR(f, p) {
for(var i = 0; i < p.length; i++) {
var userUpload = f.data;
toDataUrl(p[i].image_url, function(base64Img) {
console.log(base64Img);
});
}
}
function toDataUrl(src, callback, outputFormat) {
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function() {
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
var dataURL;
canvas.height = this.height;
canvas.width = this.width;
ctx.drawImage(this, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
};
img.src = src;
if (img.complete || img.complete === undefined) {
img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
img.src = src;
}
}
我不斷收到以下錯誤信息:「不要在一個循環中做功能」。我該如何調整自己的代碼來避免這個問題?
使功能在循環之外,並將其傳遞給元素 –