Axios 如何取消已发送的请求?

原创 年树先生 随笔 前端面试 4105阅读 30 天前 举报

最近遇到一个问题,在连续发送同一请求时,如果第二次请求比第一次请求快,那么实际显示的是第一次请求的数据,这就会造成数据和我选择的内容不一致的问题。解决的方案:在后续发送请求时,判断之前的请求是否完成(同一个接口),如果未完成则立即取消。然后在发送新的请求。

Axios 介绍

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

Axios 使用 cancel token 取消请求

Axios 的 cancel token API 基于cancelable promises proposal,它还处于第一阶段。

Axios如何取消已发送的请求?

可以使用 CancelToken.source 工厂方法创建 cancel token,像这样:

2.还可以通过传递一个 executor 函数到 CancelToken 的构造函数来创建 cancel token:

第二种方案:

提取所有的 api 进行封装:

具体的业务组件:

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复