基本上,我的问题和这里的问题一模一样。https:/github.comaxiosaxiosissues583。. 它可以通过 throw new axios.Cancel('Operation canceled by the user.');
.. 但我如何在nuxt axios模块中做到这一点?我在文档中看不到它,我试了一下。$axios.Cancel('Error')
但返回的$axios.Cancel不是一个构造函数。
基本上,类似下面的片段就是我想要的东西。
axios.interceptors.response.use(function (response) {
throw new axios.Cancel('Operation canceled by the user.');
}, function (error) {
return Promise.reject(error);
});
强调 throw new axios.Cancel
当 @nuxtjs/axios
不暴露 axios.Cancel
您仍然可以导入 axios
直接获取该符号。注 axios
已经是 @nuxtjs/axios
所以不需要额外的依赖性。
例子 (用 @nuxtjs/axios
v5.11.0):
// plugins/axios.js
import { Cancel } from 'axios'
export default function ({ $axios }) {
$axios.onResponse((response) => {
if (response.code !== 200){
throw new Cancel(response.msg)
}
})
}
似乎nuxt-axios并没有完全相同的东西,但我找到了一个工作方法。
插件axios.js
export default function({ $axios, req, store, redirect, app }, inject) {
// const source = $axios.CancelToken.source()
const timeout = process.env.API_TIMEOUT || 10000
const errorHandling = function(error) {
console.log(`API ${error}`)
return new Promise(() => {})
}
$axios.onResponse((response) => {
// Any condition that could be considered an response based on standard response
if(response.code !== 200){
throw response.msg
}
})