Javascript:如何在 IF 语句中从 AbortController 捕获 `DOMException: Aborted`?

Javascript: How to capture `DOMException: Aborted` from AbortController in an IF statement?

我正在使用 AbortController 并捕获它在中止时抛出的错误。我的调试器说错误是 DOMException: Aborted。我想在 IF 语句中捕获它,但我不确定如何捕获。我试过 if (e == "DOMException: Aborted")if (e == "Aborted") 但他们没有捕捉到它。

我的代码:

  controller = new AbortController();
  const signal = controller.signal;
  fetch(url, { signal })
    .then(function(response) {
      console.log('Download complete', response);
    })
    .catch(function(e) {
      console.log('Download error: ' + e.message);
    });

然后我用 controller.abort()

中止这个控制器

它是一个 DOMException 实例,是一个对象而不是字符串。测试它的正确条件是

.catch(function(e) {
  if (e instanceof DOMException && e.name == "AbortError") {
    // …
  } else {
    console.log('Download error: ' + e.message);
  }
});

您还可以检查是否e.code == DOMException.ABORT_ERR