Redux Action Creator 有什么更好的方法:.then 或 async/await 语法?

凤凰

例如比较下面的两个代码,第一个使用 async/await,另一个使用 .then 调用 axios。

推荐什么代码?

const BASE_URL = "https://jsonplaceholder.typicode.com"

// async await syntax
export const fetchPosts = () => async dispatch => {
  const response = await axios.get(BASE_URL + "/posts")
  dispatch({ type: "FETCH_POSTS", payload: response })
}

// using .then instead
export const fetchPosts2 = () => dispatch => {
  axios.get(BASE_URL + "/posts").then(response =>
    dispatch({
      type: "FETCH_POSTS",
      payload: response
    })
  )
}
再见 StackExchange

它们本质上是相同的。它唯一归结为纯粹的偏好。我个人更喜欢 async/await 语法,因为它可以在进行多次调用时为您节省一些潜在的麻烦,避免一些特别讨厌的嵌套调用:

// async await syntax
export const fetchPosts = () => async dispatch => {
  const posts = await axios.get(BASE_URL + "/posts")
  const users = await axios.get(BASE_URL + "/users", {
    params: posts.map(p => p.author_id)
  })
  dispatch({ type: "FETCH_POSTS", payload: {
      posts, users
  }})
}

对比:

// async await syntax
export const fetchPosts = () => dispatch => {
  axios.get(BASE_URL + "/posts").then(posts =>
    axios.get(BASE_URL + "/users", {
      params: posts.map(p => p.author_id)
    }).then(users => {
      dispatch({ type: "FETCH_POSTS", payload: {
          posts, users
      }})
    })
  )
}

不要忘记 try/catch 语法。您可以尝试/捕获整个代码块,然后也发送错误。在后一种情况下(不使用 async/await),您需要将.then()'s 链接到 2 个单独的错误处理程序中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Redux Thunk Action Creator没有被调用

来自分类Dev

Redux Thunk Action Creator没有被调用

来自分类Dev

Redux派遣在Action Creator中不起作用

来自分类Dev

来自TypeScript的Redux Action Creator功能参数误报?

来自分类Dev

如何将 redux-thunk action creator 变成 Promise?

来自分类Dev

REACT NATIVE REDUX 如何在action creator接收到的reducer中设置数组

来自分类Dev

Redux Action 没有被触发

来自分类Dev

什么语法对python!=更好?

来自分类Dev

Redux中的className语法

来自分类Dev

使用具有功能的 asyncawait 模块

来自分类Dev

当redux有属性时,如何在litElement中使用@property装饰器语法

来自分类Dev

什么是##语法?

来自分类Dev

Redux Action 无法识别状态

来自分类Dev

回调函数未在 Action Creator 中正确执行

来自分类Dev

方法的语法

来自分类Dev

Redux语法中的链接箭头功能

来自分类Dev

React/Redux 中的 Javascript 函数语法

来自分类Dev

为什么这个 action.type 没有在我的 React/Redux 应用程序的 Reducer 中触发?

来自分类Dev

cb &&'function'=== typeof cb && cb(data)在带有redux-thunk的Action(React-redux)中如何工作?

来自分类Dev

使用Qt Creator安装什么?

来自分类Dev

Redux 问题:switch 语句没有注册 action.type 并且没有执行正确的操作

来自分类Dev

将多个变量传递给Redux Action创建者。什么格式?

来自分类Dev

{... action.response} react.js或redux中这3个点的用途是什么

来自分类Dev

Redux 传奇的更好结构是什么

来自分类Dev

通过添加带有“动态名称”的新字段来更新Firestore文档的语法(React-Redux)

来自分类Dev

React Native Advice - 触发 Redux Action OnPress Dispatch Action

来自分类Dev

是否可以在 Redux Action 中提前返回

来自分类Dev

Redux - Ngrx action dispatch 异步处理

来自分类Dev

appium android python。action.tap(btn).perform()vs btn.click()有什么更好的选择?

Related 相关文章

  1. 1

    Redux Thunk Action Creator没有被调用

  2. 2

    Redux Thunk Action Creator没有被调用

  3. 3

    Redux派遣在Action Creator中不起作用

  4. 4

    来自TypeScript的Redux Action Creator功能参数误报?

  5. 5

    如何将 redux-thunk action creator 变成 Promise?

  6. 6

    REACT NATIVE REDUX 如何在action creator接收到的reducer中设置数组

  7. 7

    Redux Action 没有被触发

  8. 8

    什么语法对python!=更好?

  9. 9

    Redux中的className语法

  10. 10

    使用具有功能的 asyncawait 模块

  11. 11

    当redux有属性时,如何在litElement中使用@property装饰器语法

  12. 12

    什么是##语法?

  13. 13

    Redux Action 无法识别状态

  14. 14

    回调函数未在 Action Creator 中正确执行

  15. 15

    方法的语法

  16. 16

    Redux语法中的链接箭头功能

  17. 17

    React/Redux 中的 Javascript 函数语法

  18. 18

    为什么这个 action.type 没有在我的 React/Redux 应用程序的 Reducer 中触发?

  19. 19

    cb &&'function'=== typeof cb && cb(data)在带有redux-thunk的Action(React-redux)中如何工作?

  20. 20

    使用Qt Creator安装什么?

  21. 21

    Redux 问题:switch 语句没有注册 action.type 并且没有执行正确的操作

  22. 22

    将多个变量传递给Redux Action创建者。什么格式?

  23. 23

    {... action.response} react.js或redux中这3个点的用途是什么

  24. 24

    Redux 传奇的更好结构是什么

  25. 25

    通过添加带有“动态名称”的新字段来更新Firestore文档的语法(React-Redux)

  26. 26

    React Native Advice - 触发 Redux Action OnPress Dispatch Action

  27. 27

    是否可以在 Redux Action 中提前返回

  28. 28

    Redux - Ngrx action dispatch 异步处理

  29. 29

    appium android python。action.tap(btn).perform()vs btn.click()有什么更好的选择?

热门标签

归档