Redux jquery中的承诺从不执行catch块

Redux jquery中的承诺从不执行catch块,redux,promise,es6-promise,Redux,Promise,Es6 Promise,我正在使用redux中的thunk action creator通过以下方式向我的Rails API发送请求: export const addProduct = (product) => (dispatch) => createProduct(product) .then((product) => dispatch(receiveProduct(product))) .catch((err) => dispatch(receiveProductErr

我正在使用redux中的thunk action creator通过以下方式向我的Rails API发送请求:

export const addProduct = (product) => (dispatch) =>
  createProduct(product)
    .then((product) => dispatch(receiveProduct(product)))
    .catch((err) => dispatch(receiveProductErrors(err.responseJSON)));
createProduct
是将请求发送到服务器的API实用程序函数。我使用ajax jquery来实现这一点

export const createProduct = (product) =>
  $.ajax({
    url: "/api/products",
    method: "POST",
    data: { product },
  });
在上面的代码中,
.catch
永远不会被计算,即使我试图创建一个带有无效参数的请求<代码>。然后始终执行


如果有人能给我指出正确的方向,那就太好了。

我已经解决了这个问题。只是需要抛出一个错误,所以返回的承诺被拒绝

export const addProduct = (product) => (dispatch) =>
  createProduct(product)
    .then((product) => dispatch(receiveProduct(product)))
    .catch((err) => { 
      dispatch(receiveProductErrors(err.responseJSON));
      throw err 
    })

我已经解决了这个问题。只是需要抛出一个错误,所以返回的承诺被拒绝

export const addProduct = (product) => (dispatch) =>
  createProduct(product)
    .then((product) => dispatch(receiveProduct(product)))
    .catch((err) => { 
      dispatch(receiveProductErrors(err.responseJSON));
      throw err 
    })