[問題] 延後執行的問題

看板Ajax作者 (akakaze 二兵 >)時間8年前 (2015/08/22 04:45), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串1/4 (看更多)
一個小程式,還請大大們看一下程式碼 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

08/22 23:30, , 1F
+一層document.ready(function) 試試?
08/22 23:30, 1F

08/22 23:32, , 2F
但我看不懂p t 從那來的
08/22 23:32, 2F

09/05 09:43, , 3F
用promise
09/05 09:43, 3F

09/07 20:43, , 4F
Callback
09/07 20:43, 4F

01/17 15:53, , 5F
callback
01/17 15:53, 5F
文章代碼(AID): #1LrutR0r (Ajax)
文章代碼(AID): #1LrutR0r (Ajax)