nodejs中的forEach是同步還是異步?
node里幾乎所有用到回調函數的地方,都是異步的,回調函數后面的代碼很可能比回調函數中的代碼后先執行,特別是數據庫操作。當然,node也提供了同步版本的函數,例如文件操作,fs.readFileSync()是fs.readFile()的同步版本。那么問題來了,forEach()是不是異步的呢?按理說,沒有加Sync,應該是異步的呀。復制代碼 代碼如下: var arr = ['a', 'b', 'c']
; var str = '123'
; arr.forEach(function(item) { str += item; while (true) {}; //用一個死循環,卡死它~~ })
; console.log(str);運行上面的代碼,結果它就這么卡死了,沒有任何輸出。。
所以說,node里的forEach()是同步的!!
第一次用node的時候,沒有考慮過這個問題,按同步的寫了,寫突然想到,測試后虛驚一場,以為以前的代碼都寫錯了。