为什么js里这函数执行顺序会乱呢?

它首先执行的是alert(“应该不会影响了吧”)==我想要的是就是写的这个顺序,为什么会乱呢?求指点,感激不尽... 它首先执行的是alert(“应该不会影响了吧”)= =我想要的是就是写的这个顺序,为什么会乱呢?求指点,感激不尽 展开
 我来答
百度网友b30ab76
推荐于2016-07-16 · TA获得超过1570个赞
知道小有建树答主
回答量:397
采纳率:100%
帮助的人:484万
展开全部

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式