readable.push(chunk[, encoding])
历史
版本 | 变化 |
---|---|
v8.0.0 |
|
参数
chunk
<Buffer> | <Uint8Array> | <string> | <null> | <any> 要推入读取队列的数据块。对于不在对象模式下运行的流,chunk
必须是字符串,Buffer
或Uint8Array
。对于对象模式流,chunk
可以是任何 JavaScript 值。encoding
<string> 字符串块的编码。必须是有效的Buffer
编码,例如'utf8'
或'ascii'
。- 返回: <boolean>
true
如果可以继续推送额外的数据块;false
否则。
当 chunk
是 Buffer
、 Uint8Array
或 string
时,将把 chunk
的数据添加到内部队列中,供流的用户使用。将 chunk
作为 null
传递表示流结束 (EOF),之后无法写入更多数据。
当Readable
在暂停模式下运行时,在
事件触发时,可以通过调用'readable'
方法读出添加readable.read()
readable.push()
的数据。
当Readable
在流动模式下运行时,添加了readable.push()
的数据将通过发出'data'
事件来传递。
readable.push()
方法旨在尽可能灵活。例如,当包装提供某种形式的暂停/恢复机制和数据回调的 lower-level 源时,低级源可以由自定义 Readable
实例包装:
// `_source` is an object with readStop() and readStart() methods,
// and an `ondata` member that gets called when it has data, and
// an `onend` member that gets called when the data is over.
class SourceWrapper extends Readable {
constructor(options) {
super(options);
this._source = getLowLevelSourceObject();
// Every time there's data, push it into the internal buffer.
this._source.ondata = (chunk) => {
// If push() returns false, then stop reading from source.
if (!this.push(chunk))
this._source.readStop();
};
// When the source ends, push the EOF-signaling `null` chunk.
this._source.onend = () => {
this.push(null);
};
}
// _read() will be called when the stream wants to pull more data in.
// The advisory size argument is ignored in this case.
_read(size) {
this._source.readStart();
}
}
readable.push()
方法用于将内容推入内部缓冲区。它可以通过
方法驱动。readable._read()
对于未在对象模式下运行的流,如果 readable.push()
的 chunk
参数为 undefined
,它将被视为空字符串或缓冲区。有关详细信息,请参阅
。readable.push('')
相关用法
- Node.js readable._construct(callback)用法及代码示例
- Node.js stream.Readable readable[Symbol.asyncIterator]()用法及代码示例
- Node.js readStream.isRaw用法及代码示例
- Node.js readlinePromises.createInterface(options)用法及代码示例
- Node.js readStream.setRawMode()用法及代码示例
- Node.js readline.createInterface(options)用法及代码示例
- Node.js readline.emitKeypressEvents(stream[, interface])用法及代码示例
- Node.js readStream.isTTY用法及代码示例
- Node.js http2.Http2ServerRequest request.url用法及代码示例
- Node.js request.socket用法及代码示例
- Node.js http.ServerResponse response.statusCode用法及代码示例
- Node.js http.ClientRequest request.getHeaders()用法及代码示例
- Node.js http2.Http2ServerRequest request.headers用法及代码示例
- Node.js http.ClientRequest request.setHeader(name, value)用法及代码示例
- Node.js response.writeContinue()用法及代码示例
- Node.js http2.Http2ServerResponse response.removeHeader(name)用法及代码示例
- Node.js response.removeHeader()用法及代码示例
- Node.js http.ServerResponse response.getHeaderNames()用法及代码示例
- Node.js request.writableEnded用法及代码示例
- Node.js http.ClientRequest request.getHeaderNames()用法及代码示例
- Node.js http2.Http2ServerResponse response.hasHeader(name)用法及代码示例
- Node.js http.ClientRequest request.removeHeader(name)用法及代码示例
- Node.js http.ClientRequest request.getHeader(name)用法及代码示例
- Node.js http.ServerResponse response.removeHeader(name)用法及代码示例
- Node.js http.ClientRequest request.reusedSocket用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 readable.push(chunk[, encoding])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。