麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

舉例講解Node.js中的Writable對象

2024-05-06 16:23:59
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了舉例講解Node.js中的Writable對象,是Node.js入門學習中的基礎知識,需要的朋友可以參考下

只要有玩過 nodejs,那就一定接觸過 Writable。http 模塊的請求回調參數中的 res 參數就是一個 Writable 對象。我們經常會往上面 write 一堆東西,最后調用個 end 方法吧?這些都屬于 Writable 的行為。

我們手動創建的 Writable 對象是交給用戶使用的,那么 write 和 end 方法都是用戶調用的。作為提供方,我們如何知道自己的 Writable 對象被用戶執行了什么操作呢?就猜這個 API 吧,我首先會猜到某個事件。然而并不是!同 Readable 一樣,它也得覆寫某個方法來監聽操作。下面是創建一個 Writable 讓用戶往里面寫入內容,并監聽用戶到底寫了什么的例子(基于 babel-node):

 

 
  1. import stream from 'stream'
  2.  
  3. var w = new stream.Writable; 
  4.  
  5. w._write = (buffer, enc, next) => { 
  6. console.log(buffer + ''); 
  7. next(); // 觸發「寫入完成」 
  8. }; 
  9.  
  10. w.on('finish', () => { 
  11. console.log('finish'); 
  12. }); 
  13.  
  14. void function callee(i) { 
  15. if(i < 10) { 
  16. w.write(i + '''utf-8', () => { 
  17. // 寫入完成 
  18. }); 
  19. else { 
  20. w.end(); 
  21. setTimeout(callee, 10, i + 1); 
  22. }(0); 

同 Readable 的 _read 一樣,如果上面的 _write 沒有被覆寫將拋出異常:

 

  
  1. Error: not implemented 
  2. at Writable._write (_stream_writable.js:430:6) 
  3. at doWrite (_stream_writable.js:301:12) 

另外,write 被設計為一個異步方法,它又第三個參數可以傳入完成的回調。而所謂完成就是在實現函數 _write 中,next 參數被調用。把 write 設計成異步是有原因的,如果它是同步執行,那么當我們需要在 _write 方法中處理一些異步事務時就可能產生順序出錯。比如一個磁盤文件的寫操作就是一個異步的,如果我們寫文件無視這個異步,那么假如上一個寫操作被堵塞還沒完成,當前的寫操作可能會先執行。所以我們應該在 _write 中合理地調用 next(必須調用,否則將陷入等待,無法繼續寫)。

最后,當數據寫完成后會觸發 finish 事件,這就意味著 end 方法被用戶調用了。如果其間做的是寫文件的操作,此時就應該關閉文件。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产精品麻豆一区二区三区 | 看中国一级毛片 | 91重口视频 | 一级黄色电影网站 | 久久亚洲成人 | 欧美日韩亚洲在线 | 亚洲黑人在线观看 | 91看片在线播放 | 精品人人人人 | 91在线色| 国产欧美日韩视频在线观看 | 久久久久久久国产视频 | 亚洲欧美日韩精品久久 | free台湾极品性hd | 成人免费网站在线观看视频 | 国产一级毛片高清视频完整版 | 秋霞a级毛片在线看 | 免费淫视频| 免费色片 | 91在线播放国产 | 日韩精品一区二区三区中文 | 一级毛片电影院 | 一本色道精品久久一区二区三区 | 操操电影 | 羞羞视频免费入口网站 | 伊人在线| 午夜精品在线视频 | 国产品久久 | 午夜热门福利 | 久国产| 成年人在线免费播放视频 | 欧美一级美片在线观看免费 | 日本欧美一区二区三区在线观看 | 一级毛片电影网 | 91成人在线免费观看 | 色网在线视频 | 精品国产91久久久久久久妲己 | 国产高潮好爽受不了了夜色 | 国产精品一区二av18款 | 高清一区二区在线观看 | 伊人午夜视频 |