欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

nodejs事件循環(huán)是什么

這篇文章主要講解了“nodejs事件循環(huán)是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“nodejs事件循環(huán)是什么”吧!

成都創(chuàng)新互聯(lián)公司專注于銅川企業(yè)網(wǎng)站建設,響應式網(wǎng)站開發(fā),商城網(wǎng)站建設。銅川網(wǎng)站建設公司,為銅川等地區(qū)提供建站服務。全流程按需求定制制作,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

我們都聽說過 JavaScript 和 Node.js 是單線程的,但實際上這意味著什么?

nodejs事件循環(huán)是什么

這意味著 JavaScript 一次只能做一件事。 例如,我們不能同時將數(shù)字相乘和相加。我們通常按順序進行操作。我們相加然后相乘,反之亦然。現(xiàn)代計算機速度很快,兩個或多個連續(xù)任務的結果似乎是同時計算的,但也有例外。

我們都曾嘗試從那個緩慢的網(wǎng)站上抓取數(shù)據(jù),或者在獲得數(shù)據(jù)庫查詢結果之前等待了 30 多秒。我們是否想因為數(shù)據(jù)庫查詢速度慢而阻止單線程執(zhí)行更多任務?然而,Node.js 并沒有停止運行其他操作,因為 Libuv 是一個 C++ 庫,負責事件循環(huán)和異步處理網(wǎng)絡請求、DNS 解析、文件系統(tǒng)操作、數(shù)據(jù)加密等任務。

當 Node.js 處理諸如數(shù)據(jù)庫查詢之類的任務時,幕后會發(fā)生什么?我們將按照這段代碼一步一步來探索它。

這是我們的示例代碼

nodejs事件循環(huán)是什么

V8 JavaScript 引擎管理調(diào)用堆棧,這是跟蹤我們程序的哪個部分正在運行的重要部分。每當我們調(diào)用 JavaScript 函數(shù)時,它都會被推送到調(diào)用堆棧。一旦函數(shù)到達其結尾或return語句,它就會從堆棧中彈出。

在我們的示例中,代碼行 console.log('Starting Node.js') 被添加到調(diào)用堆棧并打印 Starting Node.js 到控制臺。通過這樣做,它到達log函數(shù)的末尾并從調(diào)用堆棧中刪除。

nodejs事件循環(huán)是什么

以下代碼行是一個數(shù)據(jù)庫查詢。這些任務會立即彈出,因為它們可能需要很長時間。它們被傳遞給 Libuv,后者在后臺異步處理它們。同時,Node.js 可以在不阻塞其單線程的情況下繼續(xù)運行其他代碼。

將來,Node.js 將知道如何處理查詢,因為我們已將回調(diào)函數(shù)與處理任務結果或錯誤的指令相關聯(lián)。在我們的例子中,它是一個簡單的 console.log,但它可能是復雜的業(yè)務邏輯或生產(chǎn)應用程序中的數(shù)據(jù)處理。

nodejs事件循環(huán)是什么

當 Libuv 在后臺處理查詢時,我們的 JavaScript 沒有被阻塞,可以繼續(xù)使用 console.log(”Before query result”).

nodejs事件循環(huán)是什么

查詢完成后,它的回調(diào)將被推送到 I/O 事件隊列以立即運行*   * 事件循環(huán)將隊列與調(diào)用堆棧連接起來。它檢查后者是否為空并移動第一個隊列項以執(zhí)行。

nodejs事件循環(huán)是什么

事件循環(huán)上的小測驗

嘗試找出控制臺上打印的以下代碼。

nodejs事件循環(huán)是什么

感謝各位的閱讀,以上就是“nodejs事件循環(huán)是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對nodejs事件循環(huán)是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

網(wǎng)頁題目:nodejs事件循環(huán)是什么
網(wǎng)頁鏈接:http://chinadenli.net/article10/geoego.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化網(wǎng)站制作網(wǎng)站策劃小程序開發(fā)手機網(wǎng)站建設網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設