标签: abortcontroller

TypeScript 中缺少 AbortController

我正在尝试在 TypeScript 中使用AbortController

给定这个小文件:

const controller = new AbortController();
Run Code Online (Sandbox Code Playgroud)

我从 TypeScript 编译器收到以下错误:

src/testAbort.ts:1:24 - error TS2304: Cannot find name 'AbortController'.

1 const controller = new AbortController();
                         ~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

TypeScript 有关于AbortController 的文档。我还从 Github 发现了一个问题,该问题已通过合并包含 AbortController 类型定义的拉取请求得到解决。所以它应该是可用的。

我的tsconfig.json包含:

src/testAbort.ts:1:24 - error TS2304: Cannot find name 'AbortController'.

1 const controller = new AbortController();
                         ~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  • 升级到最新的 TypeScript 3.7.5
  • 将tsconfig 中的lib和选项设置为.target"ESNext"
  • 通过访问它global.AbortController

typescript fetch-api abortcontroller

10
推荐指数
1
解决办法
9046
查看次数

AbortController.abort(reason),但是reason在到达fetch catch子句之前就丢失了

我正在实施可中止的获取调用

中止我的页面上的提取基本上有两个原因:

  • 用户决定不再等待 AJAX 数据并单击按钮;在这种情况下,用户界面会显示一条消息“呼叫/任何中断”
  • 用户已移动到页面的另一部分,并且不再需要正在获取的数据;在这种情况下,我不希望用户界面显示任何内容,因为它只会让用户感到困惑

为了区分这两种情况,我计划使用reason该方法的参数AbortController.abort,但 fetch 调用中的 .catch 子句始终收到一个DOMException('The user aborted a request', ABORT_ERROR).

我试图提供一个不同的DOMException作为情况 2 中止的原因,但差异丢失了。

有没有人找到如何将有关中止原因的信息发送到 fetch .catch 子句?

javascript google-chrome domexception fetch-api abortcontroller

4
推荐指数
1
解决办法
3669
查看次数