Redux jquery中的承诺从不执行catch块
我正在使用redux中的thunk action creator通过以下方式向我的Rails API发送请求: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
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
})