[問題] 延後執行的問題

作者: m2251000 (akakaze 二兵 >)   2015-08-22 04:45:08
一個小程式,還請大大們看一下程式碼
var array = [];
for (n in m) {
var img = new Image();
var i = m[n];
img.onload = function () {
//圖片讀取好後進行一些處理再return回來
var t = doImg(this);
i.forEach(function(p){
//將圖片及資訊push進array
array.push({
img : t,
p1 : p,
p2 : [p[0] + t.width, p[1] + t.height],
p3 : t.pos[1] + p[1]
});
});
};
img.src = './img/item/' + n;
}
//對array做處理
dosomthing(array);
以上
在最後處理array的時後,array裡面一直沒有東西
我知道是因為圖片讀取延遲的關係導至最後的處理比push還要早執行
但是我不知道能將最後執行的部分放在哪裡才能讓程式能正常的運作
想請叫一下各位大大們
要怎麼樣確保最後的處理一定會在圖片讀取完成之後呢?
作者: b510336 (風的細語)   2014-01-17 15:53:00
callback
作者: poiuy999 (Nines)   2015-08-22 23:30:00
+一層document.ready(function) 試試?但我看不懂p t 從那來的
作者: DKMonster (DKMonster)   2015-09-05 09:43:00
用promise
作者: heyyosweet (愛搗蛋)   2015-09-07 20:43:00
Callback

Links booklink

Contact Us: admin [ a t ] ucptt.com