国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

node模塊機制與異步處理詳解

2019-11-20 10:23:36
字體:
來源:轉載
供稿:網友

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對象,以實現鏈式調用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南京市| 武威市| 博兴县| 玉山县| 湖口县| 永登县| 柯坪县| 峡江县| 称多县| 阳城县| 土默特右旗| 盐亭县| 和田县| 顺昌县| 淄博市| 呼和浩特市| 应用必备| 尼勒克县| 钦州市| 赞皇县| 兴山县| 新闻| 普兰店市| 武冈市| 东台市| 松溪县| 沭阳县| 武安市| 尼勒克县| 那曲县| 伊宁市| 麻阳| 麻江县| 神农架林区| 冷水江市| 濮阳县| 田阳县| 永善县| 稷山县| 武胜县| 策勒县|