Javascript中的非同步函式和Node事件迴圈
非同步函式,程式繼續執行。它不會等待!這樣可以減少使用者的等待時間。此外,Javascript 作為一種程式語言本身就是非同步的。
例如,如果程式碼中正在執行一個代價高昂的請求,這可能需要很長時間,那麼對於非同步函式,等待時間會過長,使用者也無法執行任何其他操作!
因此,通常在執行代價高昂且耗時的操作時,我們更傾向於使用非同步程式碼。
讓我們來看一個 Javascript 中非同步函式的例子−
示例
console.log('One'); jQuery.get('page.html', function (data) { console.log("Two"); }); console.log('Three');
輸出
One, Two, Three
現在,讓我們看看 Node 中的事件迴圈是什麼。
事件迴圈是線上程排程中建立的,其中操作是我們的執行緒在任何給定時間點應該執行的。
任何 Node.js 應用程式都包含對各種事件(例如傳入連線、I/O 完成、超時過期、Promise 解析等)做出反應而執行的回撥函式。主執行緒(我們現在知道它是事件迴圈)執行所有這些回撥函式。
當事件迴圈執行時,Node 在每次迭代中都會檢查它是否正在等待任何非同步 I/O 或計時器。如果沒有找到任何內容,則 Node 會將其關閉。
廣告