当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js stream.addAbortSignal(signal, stream)用法及代码示例


stream.addAbortSignal(signal, stream)

添加于:v15.4.0

参数

将 AbortSignal 附加到可读或可写流。这允许代码使用 AbortController 控制流销毁。

在对应于传递的 AbortSignalAbortController 上调用 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;
    }
  }
})();

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 stream.addAbortSignal(signal, stream)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。