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也行,实在没搞懂。。。。。
题目callback这个地方你记得就是这样的吗?
if (callback)
callback
我加了个括号:
var doExe = function (a, callback) {
setTimeout(function () {
console.log(a)
if (callback) {
callback()
}
}, 100 * Math.random())
}
var max = 9
var aTest = function (index) {
doExe(index, () => {
index < max && aTest(++index)
})
}
aTest(0)