<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>

                [TOC] <br/><br/><br/> # <b style="color:#4F4F4F;">簡介說明</b> 原文鏈接: - [stream](https://github.com/nodejs/node/blob/main/doc/api/stream.md) ``` 版本:stream 作用:處理流式數據的抽象接口 ``` <br/> # <b style="color:#4F4F4F;">stream</b> <br/> # <span style="color:#619BE4">*finished()</span> ***** 當流不再可讀、可寫、或遇到錯誤、或過早關閉事件時,則該函數會獲得通知 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` const { finished } = require('stream'); const rs = fs.createReadStream('archive.tar'); finished(rs, (err) => { if (err) { console.error('流讀取失敗', err); } else { console.log('流已完成讀取'); } }); rs.resume(); // 排空流。 ``` <br/> # <span style="color:#619BE4">*pipeline()</span> ***** 使用管道傳送多個流,并轉發錯誤和正確地清理,當管道完成時提供回調。 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` const { pipeline } = require('stream'); const fs = require('fs'); const zlib = require('zlib'); // 使用 pipeline API 輕松地將一系列的流通過管道一起傳送,并在管道完全地完成時獲得通知。 // 使用 pipeline 可以有效地壓縮一個可能很大的 tar 文件: pipeline( fs.createReadStream('archive.tar'), zlib.createGzip(), fs.createWriteStream('archive.tar.gz'), (err) => { if (err) { console.error('管道傳送失敗', err); } else { console.log('管道傳送成功'); } } ); ``` <span style="color:red;">2. Promise 化</span> ``` const pipeline = util.promisify(stream.pipeline); async function run() { await pipeline( fs.createReadStream('archive.tar'), zlib.createGzip(), fs.createWriteStream('archive.tar.gz') ); console.log('管道傳送成功'); } run().catch(console.error); ``` <br/> # <b style="color:#4F4F4F;">stream.Writable</b> <br/> # <span style="color:#619BE4">destroyed</span> ***** 判斷流是否銷毀 <br/> # <span style="color:#619BE4">writable</span> ***** 調用 write()方法 是否 是安全的 <br/> # <span style="color:#619BE4">writableEnded</span> ***** 在調用了 end() 方法之后為 true。 此屬性不表明數據是否已刷新,對此請使用 writable.writableFinished <br/> # <span style="color:#619BE4">writableFinished</span> ***** 在觸發 'finish' 事件之前該屬性被立即設置為 true <br/> # <span style="color:#619BE4">writableHighWaterMark</span> ***** 返回構造可寫流時傳入的 highWaterMark 的值 <br/> # <span style="color:#619BE4">writableObjectMode</span> ***** 獲取用于給定 Writable 流的 objectMode 屬性 <br/> # <span style="color:#619BE4">writableLength</span> ***** 此屬性包含準備寫入的隊列中的字節數(或對象)。 該值提供有關 highWaterMark 狀態的內省數據。 <br/> # <span style="color:#619BE4">[eve]-on()</span> ***** 監聽事件 <br/> ### 參數說明 <b style="color:#808080;">eventName:</b> * 類型:字符層 * 默認值:無 * 描述: 事件類型 * 可選值:[ close | drain | error | finish | pipe | unpipe ] - close: 當流或其底層資源(比如文件描述符)被關閉時觸發。 表明不會再觸發其他事件,也不會再發生操作。 - drain: 如果調用 stream.write(chunk) 返回 false,則當可以繼續寫入數據到流時會觸發 'drain' 事件。 - error: 如果在寫入或管道數據時發生錯誤,則會觸發 'error' 事件 - finish: 調用 stream.end() 且緩沖數據都已傳給底層系統之后觸發。 - pipe: 當在可讀流上調用 stream.pipe() 方法時會發出 'pipe' 事件,并將此可寫流添加到其目標集。 - unpipe: 當可讀流通過管道流向可寫流發生錯誤時,也會觸發此事件。 <br/> # <span style="color:#619BE4">cork()</span> ***** 強制把所有寫入的數據都緩沖到內存中 <br/> # <span style="color:#619BE4">uncork()</span> ***** 將調用 stream.cork() 后緩沖的所有數據輸出到目標。 <br/> # <span style="color:#619BE4">setDefaultEncoding()</span> ***** 為可寫流設置默認的 encoding。 <br/> ### 參數說明 <b style="color:#808080;">encoding:</b> * 類型:字符串 * 默認值:無 * 描述: 默認的字符編碼 * 可選值:[ ] <br/> # <span style="color:#619BE4">write()</span> ***** 為可寫流設置默認的 encoding。 <br/> ### 參數說明 <b style="color:#808080;">chunk:</b> * 類型:字符串 * 默認值:無 * 描述: 要寫入的數據 * 可選值:[ ] <b style="color:#808080;">encoding:</b> * 類型:字符串 * 默認值:無 * 描述: 如果 chunk 是字符串,則指定字符編碼 * 可選值:[ ] <b style="color:#808080;">callback:</b> * 類型:字符串 * 默認值:無 * 描述: 當數據塊被輸出到目標后的回調函數 * 可選值:[ ] <br/> # <span style="color:#619BE4">end()</span> ***** 調用 writable.end() 表明已沒有數據要被寫入可寫流。 <br/> ### 參數說明 <b style="color:#808080;">chunk:</b> * 類型:對象 * 默認值:無 * 描述: 要寫入的數據 * 可選值:[ ] <b style="color:#808080;">encoding:</b> * 類型:字符串 * 默認值:無 * 描述: 如果 chunk 是字符串,則指定字符編碼。 * 可選值:[ ] <b style="color:#808080;">callback:</b> * 類型:fn * 默認值:無 * 描述: 回調函數 * 可選值:[ ] <br/> # <span style="color:#619BE4">destroy()</span> ***** 銷毀流 <br/> ### 參數說明 <b style="color:#808080;">error:</b> * 類型:對象 * 默認值:無 * 描述: 使用 'error' 事件觸發的錯誤。 * 可選值:[ ] <br/> # <b style="color:#4F4F4F;">stream.Readable</b> <br/> # <span style="color:#619BE4">[Symbol.asyncIterator]</span> ***** 異步迭代 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` const fs = require('fs'); async function print(readable) { readable.setEncoding('utf8'); let data = ''; for await (const chunk of readable) { data += chunk; } console.log(data); console.log("======="); } print(fs.createReadStream('./index.js')).catch(console.error); ``` <br/> # <span style="color:#619BE4">readableEncoding</span> ***** 獲取用于給定可讀流的 encoding 屬性。 可以使用 readable.setEncoding() 方法設置 encoding 屬性。 <br/> # <span style="color:#619BE4">readableObjectMode</span> ***** 獲取用于給定可讀流的 objectMode 屬性。 <br/> # <span style="color:#619BE4">readableLength</span> ***** 此屬性包含準備讀取的隊列中的字節數(或對象數)。 該值提供有關 highWaterMark 狀態的內省數據 <br/> # <span style="color:#619BE4">readableHighWaterMark</span> ***** 返回構造可讀流時傳入的 highWaterMark 的值。 <br/> # <span style="color:#619BE4">readableFlowing</span> ***** 此屬性反映“可讀流”的當前狀態 <br/> # <span style="color:#619BE4">readableEnded</span> ***** 當 'end' 事件被觸發時變為 true。 <br/> # <span style="color:#619BE4">readable</span> ***** 如果可以安全地調用 readable.read(),則為 true。 <br/> # <span style="color:#619BE4">destroyed</span> ***** 在調用 readable.destroy() 之后為 true。 <br/> # <span style="color:#619BE4">*from()</span> ***** 從生成器中生成流對象 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` const { Readable } = require('stream'); async function * generate() { yield 'hello'; yield 'streams'; } const readable = Readable.from(generate()); readable.on('data', (chunk) => { console.log(chunk); }); ``` <br/> # <span style="color:#619BE4">[eve]-on()</span> ***** 監聽事件 <br/> ### 參數說明 <b style="color:#808080;">eventName:</b> * 類型:字符層 * 默認值:無 * 描述: 事件類型 * 可選值:[ close | data | end | error | pause | resume ] - close: 流或其底層資源(比如文件描述符)被關閉時觸發 'close' 事件 - data: 當流將數據塊傳送給消費者后觸發。 當調用 readable.pipe(), readable.resume() 或綁定監聽器到 'data' 事件時,流會轉換到流動模式。 - end: 當流中沒有數據可供消費時觸發 - error: 'error' 事件可能隨時由 Readable 實現觸發 - pause: 當調用 stream.pause() 并且 readsFlowing 不為 false 時,就會觸發 'pause' 事件。 - resume: 當調用 stream.resume() 并且 readsFlowing 不為 true 時,將會觸發 'resume' 事件。 <br/> # <span style="color:#619BE4">isPaused()</span> ***** 返回可讀流當前的操作狀態 <br/> # <span style="color:#619BE4">pause()</span> ***** 使流動模式的流停止觸發 'data' 事件,并切換出流動模式 <br/> # <span style="color:#619BE4">pipe()</span> ***** 綁定可寫流到可讀流,將可讀流自動切換到流動模式,并將可讀流的所有數據推送到綁定的可寫流 <br/> ### 參數說明 <b style="color:#808080;">destination:</b> * 類型:Writable * 默認值:無 * 描述: 數據寫入的目標。 * 可選值:[ ] <b style="color:#808080;">options :</b> * 類型:對象 * 默認值:無 * 描述: 操作配置參數 * 可選值:[ ] <br/> # <span style="color:#619BE4">read()</span> ***** 從內部緩沖拉取并返回數據 <br/> ### 參數說明 <b style="color:#808080;">size :</b> * 類型:整型 * 默認值:無 * 描述:要讀取的數據的字節數 * 可選值:[ ] <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` const readable = getReadableStreamSomehow(); readable.on('readable', () => { let chunk; while (null !== (chunk = readable.read())) { console.log(`接收到 ${chunk.length} 字節的數據`); } }); ``` <br/> # <span style="color:#619BE4">resume()</span> ***** 將被暫停的可讀流恢復觸發 'data' 事件,并將流切換到流動模式。 <br/> # <span style="color:#619BE4">setEncoding()</span> ***** 為從可讀流讀取的數據設置字符編碼。 <br/> ### 參數說明 <b style="color:#808080;">encoding :</b> * 類型:字符串 * 默認值:無 * 描述:字符編碼 * 可選值:[ ] <br/> # <span style="color:#619BE4">unpipe()</span> ***** 解綁之前使用 stream.pipe() 方法綁定的可寫流。 <br/> ### 參數說明 <b style="color:#808080;">destination :</b> * 類型:字符串 * 默認值:無 * 描述:要移除管道的可寫流 * 可選值:[ ] <br/> # <span style="color:#619BE4">unshift()</span> ***** 將數據塊推回內部緩沖,最好在執行讀取的過程中避免調用 readable.unshift() <br/> ### 參數說明 <b style="color:#808080;">chunk :</b> * 類型:字符串 * 默認值:無 * 描述:要推回可讀隊列的數據塊 * 可選值:[ ] <b style="color:#808080;">destination :</b> * 類型:字符串 * 默認值:無 * 描述:要移除管道的可寫流 * 可選值:[ ] <br/> # <span style="color:#619BE4">wrap()</span> ***** 可以使用 readable.wrap() 創建老版本的流作為數據源 <br/> ### 參數說明 <b style="color:#808080;">stream:</b> * 類型:stream * 默認值:無 * 描述:老版本的可讀流 * 可選值:[ ] <br/> # <span style="color:#619BE4">destroy()</span> ***** 銷毀流。 <br/> ### 參數說明 <b style="color:#808080;">error:</b> * 類型:對象 * 默認值:無 * 描述: 使用 'error' 事件觸發的錯誤。 * 可選值:[ ] <br/> # <b style="color:#4F4F4F;">stream.Duplex</b> <br/> # <span style="color:#619BE4">[new]-Duplex()</span> ***** 雙工流是同時實現 Readable 和 Writable 接口的流 <br/> # <b style="color:#4F4F4F;">stream.Transform</b> <br/> # <span style="color:#619BE4">[new]-Transform()</span> ***** 轉換流是 Duplex 流,其中輸出以某種方式與輸入相關 <br/> ### 參數說明 <b style="color:#808080;">options:</b> * 類型:object * 默認值:無 * 描述:配置參數 * 可選值:[ ] - highWaterMark : 最大讀取字節數量 - transform : 轉換函數(buf, enc, next) <br/>
                  <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>

                              哎呀哎呀视频在线观看