为什么js里这函数执行顺序会乱呢?
它首先执行的是alert(“应该不会影响了吧”)==我想要的是就是写的这个顺序,为什么会乱呢?求指点,感激不尽...
它首先执行的是alert(“应该不会影响了吧”)= =我想要的是就是写的这个顺序,为什么会乱呢?求指点,感激不尽
展开
1个回答
展开全部
getdata,getx和gety都是异步执行的函数,第二个参数是回调函数。
首先执行
var m;
然后执行getdata,但是此时,getdata函数的操作并未完成,所以不会执行回调。
接着继续执行getx和gety,同理,他们也不会瞬间完成,所以回调也不会立即执行。
接着执行
alert("应该不会影响了吧");
然后过了一段时间(可能是几十毫秒,你感觉不到),getdata,getx,gety执行完毕。
哪个函数先执行完毕,哪个函数的回调就先触发。
所以你看到的顺序就是乱的。
追问
那应该怎样才能按顺序执行呢
追答
var m;
getdata("二", function (data) {
alert("返回值:" + data);
getx(11, function (back_x) {
alert(back_x + "回调x");
gety(11, function (back_y) {
alert(back_y + "回调y");
alert("应该不会影响了吧");
});
});
);
如果运行器支持Promise,也可以使用Promise
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询