NodeJs非同步的執行過程

2022-03-28 17:01:58 字數 910 閱讀 9782

我這裡寫了乙個**片段,用來模擬乙個巢狀的非同步過程,下面我總結了下這段**的執行順序var fs = require("fs");

fs.stat('a.txt',callbackone(err,stat))

}//說明1

})fs.stat('b.txt',callbacktwo(err,stat))

}//說明2

})//說明0

**自上而下執行,由於非同步操作所以**在執行到兩個讀取檔案函式的時候會先把兩個時間放入事件佇列中,直接執行到"說明0"的位置:

此時事件佇列中的事件:

callbackone

callbacktwo

當執行到"說明0"的位置的時候,nodejs此時會去執行callbackone,callbackone裡面把檔案讀完後也會有乙個**事件,此時放入事件佇列,事件佇列中的事件:callbackone callbacktwo readfilecallbackone,此時會走到"說明1"的位置,表示callbackone執行完成:

此時事件佇列中的事件:

callbacktwo

readfilecallbackone

此時開始進入callbacktwo中執行,在執行callbacktwo的時候回有乙個**readfilecallbacktwo,此時繼續放入事件佇列中,

事件佇列中的事件:callbacktwo readfilecallbackone readfilecallbacktwo,此時**走到"說明2"的位置,表示callbacktwo執行完成:

此時事件佇列中的事件:

readfilecallbackone 

readfilecallbacktow

然後再去一次執行事件佇列中的事件,從而完成整個流程.     

nodejs 模擬非同步執行,模擬線程暫停

模擬非同步執行,模擬線程暫停,這裡使用了 es7 中的async 和 await,如下 1 模擬線程暫停 2 const sleep function time time 7 8return promise 9 1011 async function asynctest i 16 i 17 awai...

nodejs的非同步呼叫

promise乙個標準,它描述了非同步呼叫的返回結果,包括正確返回結果和錯誤處理。關於詳細的說明文件可以參考promises a 目前實現promise標準的模組有很多,如q bluebird和deferred,下面我們以q為例,介紹一下promise在nodejs中的使用方法。我查詢了關於prom...

nodeJS中的非同步程式設計

nodejs 不是單執行緒 在部落格專案中關於非同步問題 1.當使用者新增一條部落格時 需要通過post方式向伺服器傳送資料 後台獲取使用者以post方式拿到傳送過來的資料 然後存入資料庫 上面的 建立乙個空字串 當使用者向伺服器傳送請求時出發data事件將依次獲取來資料進行拼接 當使用者請求結束後...