handle-callback-err要处理的预期错误

时间:2016-11-25 08:35:20

标签: javascript error-handling vue.js jslint eslint

我在vue webapp中启用了eslint,我有以下代码:

myApi.get('products/12').then((prodResponse) => {
  state.commit('ADD_PRODUCT', {product: prodResponse.data})
},
error => {
  console.log('Inside error, fetching product line items failed')
  router.push({path: '/'})
})

这是我想要做的错误处理,我仍然从班轮得到以下错误:

  

http://eslint.org/docs/rules/handle-callback-err要处理的预期错误     〜/ VUE / SRC /存储/模块/ myStore.js:97:9             错误=> {

我可以添加以下注释,将其转换为警告:

/* eslint handle-callback-err: "warn" */

但是如何完全抑制或修改代码,以免出现此错误。

3 个答案:

答案 0 :(得分:9)

只是有同样的事情,警告信息是误导性的;这实际上是因为error在代码中不是引用,而不是因为它没有被“处理”。

确保您执行了错误操作,例如console.log()或不将其作为参数包含在内:

// do something with error:
error => {
  console.log('Inside error, fetching product line items failed', error)
  router.push({path: '/'})
}

// don't define argument:
() => {
  console.log('Inside error, fetching product line items failed')
  router.push({path: '/'})
}

答案 1 :(得分:1)

试试这个:

error => {
  console.log('Inside error, fetching product line items failed', error)
  router.push({path: '/'})
}

如果有错误,您需要在代码中处理它。

答案 2 :(得分:0)

在评论的帮助下,以下是迄今为止有效的方法:

如果我将if条件设置为跟随,则错误不会出现:

error => {
  if (error) {
    console.log('Inside error, fetching product line items failed')
    router.push({path: '/'})
  }
}

如果我不想更改代码,请执行以下操作将完全抑制错误:

/* eslint handle-callback-err: "warn" */

期待任何更好的建议。