Node.js包含新的流API

jopen 11年前發布 | 8K 次閱讀 Node.js

  英文原文:A New Streaming API for Node.js

  Node.js 是一個基于 Google V8 引擎構建的服務器端 JavaScript 平臺,在 0.9.4 這個不穩定版本中包含了一個新的流 API。新 API 稱為“streams2”,計劃在 0.10 穩定版中正式發布。

  新 API 通過在暫停狀態啟動流避免了丟失數據,并且在監聽器被連接之前不會發送“data”事件,而會一直等待。另外,現在能保證在暫停狀態時不發送任何 “data”事件,而僅僅是報告。新 API 還包含了一個新的 read ()方法,能夠從流中讀取任意數量的字節,并將剩余的字節留給其他程序使用。

  為了保證向后兼容性,保留了老的方法和事件:

在添加“data”事件處理器或者調用 pause ()或 resume ()方法時,可讀流會切換到“舊模式”。這樣做的結果是,即使沒有使用新的 read ()方法和“readable”事件,也不必擔心丟失“data”塊。

  這就引入了一個邊界情況——如果沒有添加“data”事件處理器,同時也從未調用 pause ()和 resume ()方法,那么流就會始終保持在暫停狀態,永遠不會發送“end”事件。

  在發布 0.4 版本之后,我們就一直在商討新的流實現,但是手頭一直有更加緊迫的問題,同時做到向后兼容也很困難,但要確保新實現能夠被人們接受,兼容性又是必須的。最終在 0.10 版中解決了這些問題,我們鼓勵開發者嘗試新接口并提供反饋。

  Node.js 是為構建快速、可伸縮的網絡應用程序而設計的,由 Joyent 公司和開源社區開發,在 Microsoft、LinkedIn 和 eBay 等公司都有應用。

來自: InfoQ
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!