AbortSignal: reason 属性

Baseline 已广泛支持

此特性已经十分成熟,可在许多设备和浏览器版本上使用。自 2022 年 3 月起,它已在各浏览器中可用。

注意:此功能在 Web Workers 中可用。

只读的 reason 属性返回一个 JavaScript 值,用于指示中止原因。

当信号未中止时,该属性为 undefined。当使用 AbortController.abort()AbortSignal.abort()中止信号时,它可以被设置为一个特定值。如果这些方法未显式设置,它将默认为 "AbortError" DOMException

一个 JavaScript 值,用于指示中止原因;如果未中止,则为 undefined

示例

在以下代码片段中,我们创建一个新的 AbortController 对象,并获取其 AbortSignal(可通过 signal 属性访问)。稍后,我们使用 aborted 属性检查信号是否已中止,并将中止状态和原因记录到控制台。

js
const controller = new AbortController();
const signal = controller.signal;

// …

if (signal.aborted) {
  if (signal.reason) {
    console.log(`Request aborted with reason: ${signal.reason}`);
  } else {
    console.log("Request aborted but no reason was given.");
  }
} else {
  console.log("Request not aborted");
}

规范

规范
DOM
# ref-for-dom-abortsignal-reason①

浏览器兼容性

另见