當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js transform._transform(chunk, encoding, callback)用法及代碼示例


transform._transform(chunk, encoding, callback)

  • chunk <Buffer> | <string> | <any> 要轉換的 Buffer,從傳遞給 stream.write() string 轉換而來。如果流的 decodeStrings 選項是 false 或流在對象模式下運行,則不會轉換塊並且將是傳遞給 stream.write() 的任何內容。
  • encoding <string> 如果塊是字符串,那麽這是編碼類型。如果塊是緩衝區,那麽這是特殊值 'buffer' 。在這種情況下忽略它。
  • callback <Function> 處理提供的chunk 後要調用的回調函數(可選帶有錯誤參數和數據)。

此函數不得由應用程序代碼直接調用。它應該由子類實現,並且隻能由內部Readable 類方法調用。

所有Transform 流實現必須提供_transform() 方法來接受輸入並產生輸出。 transform._transform() 實現處理正在寫入的字節,計算輸出,然後使用 transform.push() 方法將該輸出傳遞到可讀部分。

transform.push() 方法可能會被調用零次或多次以從單個輸入塊生成輸出,具體取決於作為塊的結果要輸出多少。

任何給定的輸入數據塊都可能不會產生任何輸出。

callback 函數必須僅在當前塊完全消耗時調用。如果在處理輸入時發生錯誤,則傳遞給 callback 的第一個參數必須是 Error 對象,否則必須是 null。如果將第二個參數傳遞給 callback ,它將被轉發到 transform.push() 方法。換句話說,以下是等價的:

transform.prototype._transform = function(data, encoding, callback) {
  this.push(data);
  callback();
};

transform.prototype._transform = function(data, encoding, callback) {
  callback(null, data);
};

transform._transform() 方法以下劃線為前綴,因為它是定義它的類的內部,不應由用戶程序直接調用。

transform._transform() 永遠不會被並行調用;流實現了隊列機製,並且為了接收下一個塊,必須同步或異步調用callback

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 transform._transform(chunk, encoding, callback)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。