作者dianwu (dian)
看板Ajax
标题Re: [问题] 延後执行的问题
时间Sat Aug 22 05:06:42 2015
我会这样改
※ 引述《m2251000 (akakaze 二兵 >)》之铭言:
: 一个小程式,还请大大们看一下程式码
: var array = [];
var imgReady =0;
: 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]
: });
: });
imgReady++;
if (imgReady === m.length) dosomthing(array);
: };
: img.src = './img/item/' + n;
: }
: //对array做处理
: dosomthing(array);
: 以上
: 在最後处理array的时後,array里面一直没有东西
: 我知道是因为图片读取延迟的关系导至最後的处理比push还要早执行
: 但是我不知道能将最後执行的部分放在哪里才能让程式能正常的运作
: 想请叫一下各位大大们
: 要怎麽样确保最後的处理一定会在图片读取完成之後呢?
然後不建议在回圈中直接宣告 function 因为 scope 容易混乱。
应该是引用外部 function 比较好
--
Sent from my Android
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.3.110
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1440191205.A.02B.html
1F:推 m2251000: 谢谢大大解答,最後一段的建议我倒是真的没注意到,感谢 08/22 23:01