Javascript Vuex操作未在axios上抛出try/catch
我正在使用Vue和Vuex,希望能够在我的操作中出现API错误时,在我的组件中显示这些错误。我在这个例子中使用axios 这是一个操作,它应该只执行一个get请求,并在失败时抛出一个错误Javascript Vuex操作未在axios上抛出try/catch,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我正在使用Vue和Vuex,希望能够在我的操作中出现API错误时,在我的组件中显示这些错误。我在这个例子中使用axios 这是一个操作,它应该只执行一个get请求,并在失败时抛出一个错误 export default { async search({ commit }, params) { const result = await axios.get(`http://localhost:3000/search`, params) commit('SET_RESULTS', r
export default {
async search({ commit }, params) {
const result = await axios.get(`http://localhost:3000/search`, params)
commit('SET_RESULTS', result.data)
}
}
这是我的Search.vue组件,我希望在我的操作中发生api错误时能够记录“捕获的错误”
methods: {
onSubmit() {
try {
this.$store.dispatch('search', this.value)
} catch (e) {
console.log('Caught Error')
}
}
}
我确实会收到红色控制台错误,但不是我在Search.vue中定义的错误。因此,出于某种原因,我的操作没有抛出或我的Search.vue没有捕获
dispatch
返回一个承诺,它不会抛出错误
因此,您将使用catch
回调:
this.store.dispatch('search',this.value).catch(err=>{
console.log('捕获错误')
}).
如果您想要一个尝试
/捕获
,那么您需要使用异步
/等待
实现该承诺:
async onSubmit(){
试一试{
等待此。$store.dispatch('search',this.value)
}捕获(e){
console.log('捕获错误')
}
}
dispatch
返回一个承诺,它不会抛出错误
因此,您将使用catch
回调:
this.store.dispatch('search',this.value).catch(err=>{
console.log('捕获错误')
}).
如果您想要一个尝试
/捕获
,那么您需要使用异步
/等待
实现该承诺:
async onSubmit(){
试一试{
等待此。$store.dispatch('search',this.value)
}捕获(e){
console.log('捕获错误')
}
}
dispatch
返回承诺,不会抛出错误。因此,您将使用this.$store.dispatch(…).catch(err=>{…})
。如果您想使用尝试
/捕获
,那么您需要使用异步
/等待
这个承诺:等待这个。$store.dispatch(…)
@skille您能从中创建一个答案吗?所以我可以接受它dispatch
返回一个承诺,它不会抛出错误。因此,您将使用this.$store.dispatch(…).catch(err=>{…})
。如果您想使用尝试
/捕获
,那么您需要使用异步
/等待
这个承诺:等待这个。$store.dispatch(…)
@skille您能从中创建一个答案吗?所以我可以接受