<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ## rs > 低于最高水位線就會自動填充觸發readable事件 - ![](https://box.kancloud.cn/720174ec6b70b2dd8e378f919b41569b_709x478.png) > 讀到末尾會觸發readable事件 當到達流數據尾部時, 'readable' 事件也會觸發。觸發順序在 'end' 事件之前。 事實上, 'readable' 事件表明流有了新的動態:要么是有了新的數據,要么是到了流的尾部。 對于前者, stream.read() 將返回可用的數據。而對于后者, stream.read() 將返回 null。 - ![](https://box.kancloud.cn/7eca3a0db687c3210c23220594ddf2a2_326x253.png) ## ws > 當一個流不處在 drain 的狀態, 對 write() 的調用會緩存數據塊, 并且返回 false。 一旦所有當前所有緩存的數據塊都排空了(被操作系統接受來進行輸出), 那么 'drain' 事件就會被觸發 建議, 一旦 write() 返回 false, 在 'drain' 事件觸發前, 不能寫入任何數據塊 ### end方法 ws.end(chunk,[encoding],[callback]); > 表明接下來沒有數據要被寫入 Writable 通過傳入可選的 chunk 和 encoding 參數,可以在關閉流之前再寫入一段數據 如果傳入了可選的 callback 函數,它將作為 'finish' 事件的回調函數 ### finish事件 ``` var writer = fs.createWriteStream('./2.txt'); for (let i = 0; i < 100; i++) { writer.write(`hello, ${i}!\n`); } writer.end('結束\n'); writer.on('finish', () => { console.error('所有的寫入已經完成!'); }); ``` ## pipe pipe時 write必須要有回調來消費 不然緩沖區不會-- ,讀出來的也就不會放到wirte的緩沖區里 pipe時,如果不消費,ws不會觸發`drain`的回調,既不會`resume`,`flowing`狀態不會改變和調用`read`,也就不會觸發 `data` 回調往 **ws**中寫 ## readable ``` let fs = require('fs'); let rs = fs.createReadStream('./1.txt',{ start:0, highWaterMark:3 }); //在真實的情況下,當可讀流創建后會立刻進行暫停模式。其實會立刻填充緩存區 rs.on('readable',()=>{ console.log(rs._readableState.length); //3 //當年消費掉一個字節之后,緩存區變成2個字節了 let char = rs.read(1); console.log(char); console.log(rs._readableState.length); //2 //但當你一旦發現緩沖區的字節數小于最高水位線了,則會再讀最高水位線個字節到緩沖區里 setTimeout(()=>{ console.log(rs._readableState.length); },50) }); ``` ## options參數注意事項 ``` let ws = new WriteStream('./2.txt',{ //如果 options 是一個字符串,則它指定了字符編碼。 flags:'w' ,highWaterMark:3 ,encoding:'utf8' ,fd:null //果指定了 fd,則 WriteStream 會忽略 path 參數并且會使用指定的文件描述符。 這意味著不會觸發 'open' 事件 ,mode:0o666 ,autoClose:true //如果 autoClose 被設置為 true(默認),則在 error 或 end 時,文件描述符會被自動關閉。 如果 autoClose 為 false,則文件描述符不會被關閉,即使有錯誤。 應用程序需要負責關閉它,并且確保沒有文件描述符泄漏。 ,start:0 }); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看