gpt4 book ai didi

javascript - Redux Thunk 尝试返回 promise

转载 作者:行者123 更新时间:2023-11-28 14:35:17 26 4
gpt4 key购买 nike

我在 Redux 中有以下 actionCreator:

export function updateValuesRouting(values, routingID ){
const url = `${ROOT_ROUTINGS_URL}/${routingID}/editing/meta`;
console.log("routing url:: ",url, values);
return dispatch => {
dispatch({type: UPDATE_VALUE_ROUTING_LOADING, isLoaded: false});
return axios.put(url, values)
.then(({data}) => {
console.log("returned values from updateValuesRouting:",data);
dispatch({type: UPDATE_VALUE_ROUTING, data, isLoaded:true})
return Promise.resolve();
})
.catch((err) => {
dispatch(alertMessage("danger", `${routingID} has not updated values. ${err}`));
dispatch({type: UPDATE_VALUE_ROUTING_FAILURE, isLoaded: true})
})
}
}

我想要对 axios 调用的返回执行的操作是返回一个 promise ,这样我就知道操作已经完成,并且我可以用它进行另一个调用。但是,在另一个 actioncreator 中我调用了:

dispatch(updateValuesRouting(values, routingID).then(//put some other code here))

我无法到达它,说:

Uncaught TypeError: updateValuesRouting(...).then is not a function

我很确定这是我的语法错误。我以为我只需要在 axios 调用之前返回即可让 promise 通过,但我认为我错过了其他东西。提前致谢。

最佳答案

根据thunk document

Any return value from the inner function will be available as the return value of dispatch itself

您正在从 updateValuesRouting 返回 promise ,因此您可以等待响应到达,然后稍微更改一下您的使用方式然后,您需要更改

dispatch(updateValuesRouting(values, routingID).then(

dispatch(updateValuesRouting(values, routingID)).then(...)

顺便说一句,您错过了 catch block 中的 Promise.reject()

希望这会有所帮助!

关于javascript - Redux Thunk 尝试返回 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49984947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com