猿问

js同步异步问题,怎么调用带callback函数的时候改成同步

var doExe = function (a , callback) {

    setTimeout(function () {

        console.log(a)

        if(callback) callback

    }, 100 * Math.random())

}

var aTest = function (num) {

    for(var i=0 ; i<num ; i++){

          doExe(i)

    }

}


aTest(10)

不知道有没有记错题目。。。。。。。
doExe是带个callback的函数, 现在aTest执行出来的顺序是乱的,要求按顺序输出0123456789

doExe不能改, aTest可以随便改。。。。求大神指点,闭包也行,队列+apply也行,实在没搞懂。。。。。


杨魅力
浏览 482回答 1
1回答

红糖糍粑

var doExe = function (a , callback) {setTimeout(function () {&nbsp; &nbsp; console.log(a)&nbsp; &nbsp; if(callback) callback()}, 100 * Math.random())}var i = 0;var aTest = function () {if(i < 10) {&nbsp; &nbsp; doExe(i, aTest)&nbsp; &nbsp; i++;}}aTest()
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答