web-dev-qa-db-ja.com

handle-callback-err処理されると予想されるエラー

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/store/modules/myStore.js:97:9エラー=> {{

これを警告に変換するために、次のコメントを追加できます。

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

しかし、このエラーが発生しないように、これを完全に抑制したり、コードを変更したりするにはどうすればよいですか。

12
Saurabh

同じことがあり、警告メッセージは誤解を招くものです。これは、実際には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: '/'})
}
12
Dave Stewart

これを試して:

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

エラーがある場合は、コードで処理する必要があります。

1
NicoS

以下は、コメントの助けを借りて、これまでに機能したものです。

次のようにif条件を設定すると、エラーは発生しません。

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

コードを変更したくない場合は、以下を入力するとエラーが完全に抑制されます。

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

より良い提案を楽しみにしています。

0
Saurabh