node js模塊機制與異步處理

1.模塊機制

commonJS模塊機制出現的目的是爲了構建js在web服務器,桌面程序,瀏覽器等方面造成生態系統。而node js就是這種規範的一種實現,用requird來引入其餘文件,一樣,npm也遵循了commonJS定義的包規範,從而造成了一套完整的生態系統。javascript

  • 模塊定義並導出
    例若有以下一個名爲circle.js的文件java

exports.getName = function(name) {
    return name
}
  • 模塊載入node

var circle = require('/circle.js')
console.log(circle.getName('WPY'))
  • 模塊加載策略
    node模塊主要能夠分爲兩類:web

原生模塊和自定義模塊,所謂原生模塊就是node本身定義的模塊,例如HTTP,fs模塊,此類模塊加載速度最快。
還有一類是自定義模塊,包括包模塊,和咱們本身定義的文件。不管是原生模塊仍是自定義模塊在第一次加載後都會被node緩存,因此第二次請求時是不會有開銷的。
原生模塊加載:
require()方法在解析文件名以後,最優先在模塊緩存中查找,而後在node的原生模塊中查找
從文件加載
module.path 對於每個被加載的文件模塊,在建立這個模塊對象的時候都會有一個paths屬性。其路徑指向引入模塊的路徑。
在請求絕對路徑模塊時,不會去遍歷node_module加載速度最快。npm

異步編程

  • 高介函數
    高介函數是將函數做爲參數,或者做爲返回值的函數。編程

function foo(X) {
    return function() {
        return x
    }
}

NODE帶來的最大特性莫過於機遇事件驅動的非阻塞IO。promise

  • 異步編程解決方案瀏覽器

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

3.流程控制庫

next()

相關文章
相關標籤/搜索