此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

AbortSignal.reason

基线 广泛可用

自 2022年3月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

只读属性 reason 返回一个使用 JavaScript 值表示的中止原因。

当 signal 没有被中止时,该属性值为 undefined。当使用 AbortController.abort()AbortSignal.abort() 中止 signal 时,可以设置一个指定的值。如果没有在这些方法中明确的设置,则默认是"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①

浏览器兼容性

参见