异步执行函数 实现函数asyncEach,依次执行函数func1,func2,func3的异步控制

function func1(){
  setTimeout(function(){console.log("func1")},Math.random()*1000)
}
function func2(){
  setTimeout(function(){console.log("func2")},Math.random()*1000)
}
function func3(){
  setTimeout(function(){console.log("func3")},Math.random()*1000)
}
 
 
asynEach(func1,func2,func3);
 
//输出结果:
func1
func2
func3
阅读 2.5k
1 个回答

var asyncGuid = 0, sto = window.setTimeout;
window.setTimeout = function(fn) {
   sto(fn, asyncGuid++);
}

function asynEach() {
  [].slice.call(arguments).forEach(function(v) {
    setTimeout(v);
  });
}


function func1(){
  setTimeout(function(){console.log("func1")},Math.random()*1000)
}
function func2(){
  setTimeout(function(){console.log("func2")},Math.random()*1000)
}
function func3(){
  setTimeout(function(){console.log("func3")},Math.random()*1000)
}

asynEach(func1,func2,func3);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题