为了账号安全,请及时绑定邮箱和手机立即绑定

nodejs中怎么实现函数的串行执行

nodejs中怎么实现函数的串行执行

DIEA 2019-04-04 06:02:21
nodejs中怎么实现函数的串行执行
查看完整描述

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

1.首先我们定义一个保存函数执行顺序的数值:
var tasks = [];
2.再定义一个往数值里面加入串行化执行函数的函数:
function addTask(task){
tasks.push(task);
}
3.执行数组中下一个函数的函数:
function next(){
if(tasks.length > 0){
tasks.shift()();
}else{
return;
}
}
ok,大功告成,接下来定义几个测试函数:
var task1 = function(){
console.log('task1 is finished');
next();
}
var task2 = function(){
console.log('task2 is finished');
next();
}
var task3 = function(){
console.log('task3 is finished');
next();
}
开始测试:
addTask(task1);
addTask(task2);
addTask(task3);
next()
换个顺序:
addTask(task1);
addTask(task3);
addTask(task2);
next();
ok,大功告成。基于这个思想,在实际开发中大家可以定义一个模块,将这个串行打包,再也不用害怕回调地狱问题啦。



查看完整回答
反对 回复 2019-04-05
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

定时函数可以这么写
var a = function(){
//逻辑
setTimeout(() => {
a()
}, time)
}

查看完整回答
反对 回复 2019-04-05
?
狐的传说

TA贡献1804条经验 获得超3个赞

1.首先定义一个保存函数执行顺序的数值:
var tasks = [];
2.再定义一个往数值里面加入串行化执行函数的函数:
function addTask(task){
tasks.push(task);
}
3.执行数组中下一个函数的函数:
function next(){
if(tasks.length > 0){
tasks.shift()();
}else{
return;
}
}

查看完整回答
反对 回复 2019-04-05
  • 3 回答
  • 0 关注
  • 763 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信