亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 822 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號