摘要:異步編程高介函數高介函數是將函數作為參數,或者作為返回值的函數。異步編程解決方案事件發布訂閱模式事件監聽器模式是廣泛應用于異步編程,是回調函數的時間化,又稱發布訂閱模式。
1.模塊機制
commonJS模塊機制出現的目的是為了構建js在web服務器,桌面程序,瀏覽器等方面形成生態系統。而node js就是這種規范的一種實現,用requird來引入其他文件,同樣,npm也遵循了commonJS定義的包規范,從而形成了一套完整的生態系統。
模塊定義并導出
例如有如下一個名為circle.js的文件
exports.getName = function(name) { return name }
模塊載入
var circle = require("/circle.js") console.log(circle.getName("WPY"))
模塊加載策略
node模塊主要可以分為兩類:
原生模塊和自定義模塊,所謂原生模塊就是node自己定義的模塊,例如HTTP,fs模塊,此類模塊加載速度最快。
還有一類是自定義模塊,包括包模塊,和我們自己定義的文件。無論是原生模塊還是自定義模塊在第一次加載后都會被node緩存,所以第二次請求時是不會有開銷的。
原生模塊加載:
require()方法在解析文件名之后,最優先在模塊緩存中查找,然后在node的原生模塊中查找
從文件加載
module.path 對于每一個被加載的文件模塊,在創建這個模塊對象的時候都會有一個paths屬性。其路徑指向引入模塊的路徑。
在請求絕對路徑模塊時,不會去遍歷node_module加載速度最快。
高介函數
高介函數是將函數作為參數,或者作為返回值的函數。
function foo(X) { return function() { return x } }
NODE帶來的最大特性莫過于機遇事件驅動的非阻塞IO。
異步編程解決方案
1.事件發布/訂閱模式事件監聽器模式是廣泛應用于異步編程,是回調函數的時間化,又稱發布/訂閱模式。
//訂閱
emitter.on("event1", function(message){ console.log(message) })
//發布
emitter.emit("event1", "I am message")2.Promise模式
promise對象具有三種狀態,未完成態,完成態,失敗態。
promise對象要具有then方法,對于then 方法有以下幾點要求
1.接受完成態,錯誤態的回調方法。
2.只接受function,其余對象將被忽略
3.繼續返回promise對象,以實現鏈式調用
next()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/78879.html
摘要:回調函數是在異步操作完成后傳播其操作結果的函數,總是用來替代同步操作的返回指令。下面的圖片顯示了中事件循環過程當異步操作完成時,執行權就會交給這個異步操作開始的地方,即回調函數。 本系列文章為《Node.js Design Patterns Second Edition》的原文翻譯和讀書筆記,在GitHub連載更新,同步翻譯版鏈接。 歡迎關注我的專欄,之后的博文將在專欄同步: Enc...
摘要:簡介項目命名為就是一個服務器單純開發一個服務器的想法,變成構建網絡應用的一個基本框架發展為一個強制不共享任何資源的單線程,單進程系統。單線程弱點無法利用多核錯誤會引起整個應用退出,應用的健壯性大量計算占用導致無法繼續調用異步。 NodeJs簡介 Ryan Dahl項目命名為:web.js 就是一個Web服務器.單純開發一個Web服務器的想法,變成構建網絡應用的一個基本框架.Node發展...
摘要:概述本文主要介紹了我對的一些核心特性的理解,包括架構特點機制核心模塊與簡單應用。在此期間,主線程繼續執行其他任務。延續了瀏覽器端單線程,只用一個主線程執行,不斷循環遍歷事件隊列,執行事件。 原文地址在我的博客,轉載請注明來源,謝謝! node是在前端領域經常看到的詞。node對于前端的重要性已經不言而喻,掌握node也是作為合格的前端工程師一項基本功了。知道node、知道后端的一些東西...
摘要:這使我們的知道什么時候原始模塊被初始化,在初始化后執行預初始化隊列的操作,之后清空預初始化隊列,再調用作為參數的回調函數,以下為具體步驟把賦值給,表示預初始化已經完成了。 本系列文章為《Node.js Design Patterns Second Edition》的原文翻譯和讀書筆記,在GitHub連載更新,同步翻譯版鏈接。 歡迎關注我的專欄,之后的博文將在專欄同步: Encount...
閱讀 725·2021-10-14 09:42
閱讀 1977·2021-09-22 15:04
閱讀 1585·2019-08-30 12:44
閱讀 2147·2019-08-29 13:29
閱讀 2740·2019-08-29 12:51
閱讀 557·2019-08-26 18:18
閱讀 709·2019-08-26 13:43
閱讀 2821·2019-08-26 13:38