作者m2251000 (akakaze 二兵 >)
看板Ajax
標題[問題] 延後執行的問題
時間Sat Aug 22 04:45:08 2015
一個小程式,還請大大們看一下程式碼
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還要早執行
但是我不知道能將最後執行的部分放在哪裡才能讓程式能正常的運作
想請叫一下各位大大們
要怎麼樣確保最後的處理一定會在圖片讀取完成之後呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.155.52.95
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1440189915.A.035.html
→ poiuy999: +一層document.ready(function) 試試? 08/22 23:30
→ poiuy999: 但我看不懂p t 從那來的 08/22 23:32
推 DKMonster: 用promise 09/05 09:43
推 heyyosweet: Callback 09/07 20:43
推 b510336: callback 01/17 15:53