Vue.js Vue JS中的错误处理-未捕获错误
我有以下代码:Vue.js Vue JS中的错误处理-未捕获错误,vue.js,Vue.js,我有以下代码: fooService.update(this.bar).then( this.$emit('updated', this.updatedBar),).catch(err => {... 如果遇到错误,则不会捕获该错误。如果我将代码更改为: fooService.update(this.bar).then(x => {this.$emit('updated', this.updatedBar);}).catch(err => {... 然后捕获错误并按预期显示
fooService.update(this.bar).then( this.$emit('updated', this.updatedBar),).catch(err => {...
如果遇到错误,则不会捕获该错误。如果我将代码更改为:
fooService.update(this.bar).then(x => {this.$emit('updated', this.updatedBar);}).catch(err => {...
然后捕获错误并按预期显示。有谁能向我解释一下发生了什么事,以及为什么它会这样
编辑
基础服务代码:
function updateBar(bar) {
return $http.put(`/api/bar/${bar.Id}`, bar);
}
因此,我仍然认为错误发生在
this.$emit
中,原因是
fooService.update(this.bar).then( this.$emit('updated', this.updatedBar),).catch(err => {
当您将该函数的响应设置为时,它必须首先计算this.$emit
,然后计算,而不是调用本身
它这样做的证据
函数emit(){
console.log('emit')
}
var承诺=新承诺(功能(解决、拒绝){
设置超时(()=>{
console.log('承诺完成')
拒绝();
}, 1000)
})
promise.then(emit()).catch(function(){console.log('carry on');})
为什么要将await
语法与promise
语法结合起来?@Cristy说来也很奇怪,我知道有人也这么做,它最终会忽略wait,因为它会执行,虽然我假设它并没有完全忽略它。为了冒险猜测,我会说,因为在第一个示例中,。然后,
没有被传递一个function@Cristy-修改了代码,无论如何处理都会发生同样的情况。@Leonidas199x谢谢,我无法让它继续复制,但无论如何,你应该用第二种方式来做。谢谢你花时间来做这件事,真的很感激。这基本上回答了我的问题。