// step 1: if abortController is active, it means a request
// is in progress and we need to cancel it before proceeding
if (this.abortController) {
this.abortController.abort();
}
// step 2: abortController wasnt active, so activate one
// and grab its signal
this.abortController = new AbortController();
const signal = this.abortController.signal;
// step 3: make request and pass in signal
await axios.get('admin/providers/list', { signal });
// step 4: unset the abortController after request is done
this.signalController = null;
4条答案
按热度按时间zysjyyx41#
2022更新
要取消请求,请使用AbortController
**说明:**我们首先使用AbortController创建一个控制器,并通过访问
AbortController.signal
属性获取对其关联AbortSignal对象得引用.为了将信号与请求相关联,我们将信号作为选项传递到请求的options对象中,然后调用
controller.abort()
来取消/中止请求。令人惊奇的是,我们可以用与fetch API完全相同的方式使用它:
自v0.22.0起,取消标记已被弃用,不应在新项目中使用。
2020更新:如何取消axios请求
生成一个
cancelToken
并存储将
cancelToken
传递给axios请求访问您存储的请求并调用
.cancel()
方法以取消该请求See it live on a tiny app on codesandbox
看一看axios取消
一个简单的例子,你可以see it live.
HTML格式:
JS
q3aa05252#
在这个例子中,当一个新的请求开始时,当前的请求被取消。如果在旧的请求被取消之前有一个新的请求被触发,服务器会在5秒后应答。
cancelSource
指定了一个可以用来取消请求的取消令牌。有关更多信息,请查看axios文档。第一个
qco9c6ql3#
下面是我在一家Pinia商店里的做法:
重要的是:
xuo3flqw4#
首先定义一些变量
然后在方法内部