當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。