在 axios/react 调度时调用 .then

Calling .then on a dispatch in axios/react

我有以下代码:

   ....  
 then(() => {
 return Promise.all([
          dispatch(setAnimalCharacteristics(animalform))
        ])
          .then(() => {
            history.push("/animals);
          })

有没有办法删除 Promise.all 并只调用 dispatch(setAnimalCharacteristics)?

我试过 运行 这个:

 then(() => {
   return dispatch(setAnimalCharacteristics(animalform)).then(() => {

我得到错误:

Uncaught (in promise) TypeError: Cannot read property 'then' of undefined

这应该有效:

await dispatch(setAnimalCharacteristics(animalform))

history.push("/animals);

你的代码中我唯一看不到的部分是它调用的函数,你需要在其中添加关键字 async 以便你可以使用 await

但这是一个猜测:

const yourFunction async = () => {
   await dispatch(setAnimalCharacteristics(animalform))

   history.push("/animals);
}

如果您想在分派操作后进行导航,则实际上不必嵌套 then() 函数。有几种方法可以解决它。

  1. 然后可以像下面这样链接。

.then(() => dispatch(setAnimalCharacteristics(animalform)))
.then(() => history.push("/animals);)

  1. 最后写入 setAnimalCharacteristics 函数中的 history.push。在 API 调用完成后,我们最常使用此模式进行导航。

希望对您有所帮助!