中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

Nodejs中怎么實現函數的串行執行

nodejs實現函數串行執行

成都創新互聯公司主要從事成都網站建設、網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務興和,10多年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:028-86922220

眾所周知,nodejs是用非阻塞異步io機制,也就是說函數執行完成的先后順序和代碼的編寫的先后順序可能不同,實際的順序取決于一個函數自身執行的快慢。這就出現一個在nodejs中怎么編寫串行執行也就是順序執行代碼的問題。試想,要是你寫了2個函數,一個查詢數據庫,另一個返回查詢的結果,要是不用串行執行那么還沒等數據庫查詢完畢就返回了結果,這顯然是不行的。因而串行執行在nodejs中很有用。那么怎么實現呢?

大家可能會說,將返回查詢結果的函數寫在查詢數據庫函數的回調函數里面就好了呀,但是有過開發經驗的朋友一定知道,要是情況比較復雜時就會產生一個回調地獄的問題,即層層嵌套,最后都不知道自己寫了些什么,可讀性和維護性很差。

我們不防換個思路,要是將這些想要順序執行的函數放到一個數組里面,當一個函數執行完畢時在執行數組里面的下一個函數不就行了嘛。其實,nodejs開源社區中的很多串行模塊的基本思想就是這個。接下來我們一步一步完成這個串行的demo:

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()

Nodejs中怎么實現函數的串行執行

換個順序:

addTask(task1);
addTask(task3);
addTask(task2);
next();

Nodejs中怎么實現函數的串行執行

ok,大功告成。基于這個思想,在實際開發中大家可以定義一個模塊,將這個串行打包,再也不用害怕回調地獄問題啦。

還可以用第三方庫,如async.

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對創新互聯的支持。如果你想了解更多相關內容請查看下面相關鏈接

新聞名稱:Nodejs中怎么實現函數的串行執行
文章起源:http://www.2m8n56k.cn/article32/gdshsc.html

成都網站建設公司_創新互聯,為您提供商城網站關鍵詞優化微信小程序小程序開發響應式網站營銷型網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化
主站蜘蛛池模板: 一区一精品 | 天天拍拍夜夜出水 | www中文字幕 | 亚洲国产精品综合久久 | 欧美精品videos | 国产成人在线视频观看 | a级毛片免费在线观看 | 亚洲欧美一区二区三区在线观看 | 性刺激久久久久久久久 | 日本免费的一级绿象 | 一级视频在线播放 | 日韩精品在线一区二区 | 久久成人免费网站 | 欧美一级黄色毛片 | 欧美日韩乱国产 | 国产91久久精品一区二区 | 欧美三级真做在线观看 | 久久精品免费 | 亚洲国产精品久久精品成人 | 成人中文字幕在线观看 | 欧美三级aaa| 日韩三级在线播放 | 香港毛片免费观看 | 日韩国产欧美精品综合二区 | 亚洲国产欧美在线人成 | 姐姐真漂亮在线视频中文版 | 最新国产三级在线不卡视频 | 免费看a级片 | 亚洲国产高清在线精品一区 | 最新亚洲情黄在线网站无广告 | 456主播喷水在线观看 | 50岁老女人毛片一级亚洲 | 亚洲深夜| 日韩一级精品视频在线观看 | 中国高清色视频www 中国黄色网址大全 | 日韩精品午夜视频一区二区三区 | 亚洲精品欧美精品国产精品 | 中文字幕在线看片成人 | 久久亚洲精品永久网站 | 91久久国产露脸精品 | 国产日韩欧美视频 |