[问题] 延后执行的问题

楼主: 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