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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。