【问题标题】:Why developers of Redux use Middleware to handle asynchronous instead of just wait the promise to resolve? [duplicate]为什么 Redux 的开发者使用中间件来处理异步而不是等待 promise 解决? [复制]
【发布时间】:2019-09-19 21:34:54
【问题描述】:

我是 Redux 的新手,我见过很多人使用一些中间件来处理异步。

我的问题是,我可以这样做:

fetch(myAPI)
  .then(res => res.json())
  .then(res => {
    dispatch({
      type: 'MY_ASYNC_ACTION',
      res
    })
  })

我可以等待承诺解决,然后分派我的同步操作。

在 Redux 中使用中间件处理异步而不是等待 promise 解决有什么好处?

我看过很多关于 Redux 的教程,都没有等待 promise 解决,我错过了什么?

【问题讨论】:

  • 使用例如一旦 promise 被解决,redux-thunk 不会原谅你调度一个动作,但这意味着动作本身是异步调度的。

标签: javascript reactjs asynchronous redux middleware


【解决方案1】:

在 Redux 中使用中间件处理异步而不是等待 promise 解决有什么好处?

将中间件视为您的操作和减速器之间的中间人。这可以让您在不停止主线程(您的流程)的情况下灵活地执行异步操作(例如,获取/其他 API 调用)。并向您的用户显示一个备用 UI,以表明后台正在发生某些事情。

一个简单的用例: 您的用户可能希望查看一些数据,并在获取数据时执行其他操作。如果没有中间件,您的用户可能会等待某件事情发生(直到您的 fetch 解决),但没有任何迹象表明正在发生什么。

查看 Redux Async Flow 了解更多详情 还有Redux-Saga 中间件,用于处理应用程序中的异步流。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 2021-09-25
    • 1970-01-01
    • 2017-10-26
    • 2020-09-12
    • 2018-04-17
    相关资源
    最近更新 更多