stream.addAbortSignal(signal, stream)
添加于:v15.4.0
参数
signal
<AbortSignal> 表示可能取消的信号stream
<Stream> 将信号附加到的流
将 AbortSignal 附加到可读或可写流。这允许代码使用 AbortController
控制流销毁。
在对应于传递的 AbortSignal
的 AbortController
上调用 abort
的行为方式与在流上调用 .destroy(new AbortError())
的方式相同。
const fs = require('node:fs');
const controller = new AbortController();
const read = addAbortSignal(
controller.signal,
fs.createReadStream(('object.json'))
);
// Later, abort the operation closing the stream
controller.abort();
或者使用带有可读流的AbortSignal
作为异步迭代:
const controller = new AbortController();
setTimeout(() => controller.abort(), 10_000); // set a timeout
const stream = addAbortSignal(
controller.signal,
fs.createReadStream(('object.json'))
);
(async () => {
try {
for await (const chunk of stream) {
await process(chunk);
}
} catch (e) {
if (e.name === 'AbortError') {
// The operation was cancelled
} else {
throw e;
}
}
})();
相关用法
- Node.js stream.Writable.uncork()用法及代码示例
- Node.js stream.Readable.take(limit[, options])用法及代码示例
- Node.js stream.Readable.pipe(destination[, options])用法及代码示例
- Node.js stream.Readable.setEncoding(encoding)用法及代码示例
- Node.js stream.Readable.some(fn[, options])用法及代码示例
- Node.js stream.Readable.map(fn[, options])用法及代码示例
- Node.js stream.Readable.toArray([options])用法及代码示例
- Node.js stream.Readable.isPaused()用法及代码示例
- Node.js stream.Readable.forEach(fn[, options])用法及代码示例
- Node.js stream.Readable.every(fn[, options])用法及代码示例
- Node.js stream.finished()用法及代码示例
- Node.js stream.Readable.from()用法及代码示例
- Node.js stream.Readable.read([size])用法及代码示例
- Node.js stream.Readable.flatMap(fn[, options])用法及代码示例
- Node.js stream.finished(stream[, options], callback)用法及代码示例
- Node.js stream.Readable.unshift(chunk[, encoding])用法及代码示例
- Node.js stream.Writable.end([chunk[, encoding]][, callback])用法及代码示例
- Node.js stream.Readable.filter(fn[, options])用法及代码示例
- Node.js stream.Readable.asIndexedPairs([options])用法及代码示例
- Node.js stream.Readable.drop(limit[, options])用法及代码示例
- Node.js stream.Readable.resume()用法及代码示例
- Node.js stream.Readable.reduce(fn[, initial[, options]])用法及代码示例
- Node.js stream.Readable.iterator([options])用法及代码示例
- Node.js stream.Writable.destroyed用法及代码示例
- Node.js stream.Readable.wrap(stream)用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 stream.addAbortSignal(signal, stream)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。