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
。
相關用法
- Node.js assert.CallTracker tracker.report()用法及代碼示例
- Node.js assert.CallTracker tracker.calls([fn][, exact])用法及代碼示例
- Node.js assert.CallTracker tracker.verify()用法及代碼示例
- Node.js trace_events.createTracing(options)用法及代碼示例
- Node.js tracing.disable()用法及代碼示例
- Node.js trace_events.getEnabledCategories()用法及代碼示例
- Node.js trace_events.createTracing()用法及代碼示例
- Node.js trim()用法及代碼示例
- Node.js tlsSocket.authorized用法及代碼示例
- Node.js tls.DEFAULT_MAX_VERSION用法及代碼示例
- Node.js timersPromises.setTimeout([delay[, value[, options]]])用法及代碼示例
- Node.js tlsSocket.disableRenegotiation()用法及代碼示例
- Node.js tlsSocket.address()用法及代碼示例
- Node.js tlsSocket.remoteAddress用法及代碼示例
- Node.js tlsSocket.setMaxSendFragment()用法及代碼示例
- Node.js tlsSocket.getProtocol()用法及代碼示例
- Node.js tlsSocket.exportKeyingMaterial()用法及代碼示例
- Node.js tls.DEFAULT_ECDH_CURVE用法及代碼示例
- Node.js tty.WriteStream.hasColors([count][, env])用法及代碼示例
- Node.js tlsSocket.getPeerFinished()用法及代碼示例
- Node.js tlsSocket.getFinished()用法及代碼示例
- Node.js timersPromises.setImmediate([value[, options]])用法及代碼示例
- Node.js text轉speech用法及代碼示例
- Node.js tlsSocket.authorizationError用法及代碼示例
- Node.js tlsSocket.getPeerCertificate()用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 transform._transform(chunk, encoding, callback)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。