Asynchronous 你有什么好处;“异步操作”;你带来了什么?

Asynchronous 你有什么好处;“异步操作”;你带来了什么?,asynchronous,middleware,redux,Asynchronous,Middleware,Redux,表示要执行异步调用,通常会涉及一个指示异步调用开始的操作,以及一个指示异步调用完成的后续操作,我应该使用“thunk”中间件。这让我可以这样写“动作创造者”: function fetchPosts(reddit) { return dispatch => { dispatch(requestPosts(reddit)) return fetch(`http://www.reddit.com/r/${reddit}.json`) .then(response

表示要执行异步调用,通常会涉及一个指示异步调用开始的操作,以及一个指示异步调用完成的后续操作,我应该使用“thunk”中间件。这让我可以这样写“动作创造者”:

function fetchPosts(reddit) {
  return dispatch => {
    dispatch(requestPosts(reddit))
    return fetch(`http://www.reddit.com/r/${reddit}.json`)
      .then(response => response.json())
      .then(json => dispatch(receivePosts(reddit, json)))
  }
}
function fetchPosts(reddit) {
  store.dispatch(requestPosts(reddit));
  return fetch(`http://www.reddit.com/r/${reddit}.json`)
      .then(response => response.json())
      .then(json => store.dispatch(receivePosts(reddit, json)))
  }
}
(此处
requestPosts
receivePosts
是动作创建者。)

thunk
中间件允许我分派
fetchPosts
的(函数)输出,例如

store.dispatch(fetchPosts('reactjs')).then(() =>
  ...
但为什么要涉及中间件呢?为什么这比使用全局存储编写我自己的
fetchPost
函数要好,如下所示:

function fetchPosts(reddit) {
  return dispatch => {
    dispatch(requestPosts(reddit))
    return fetch(`http://www.reddit.com/r/${reddit}.json`)
      .then(response => response.json())
      .then(json => dispatch(receivePosts(reddit, json)))
  }
}
function fetchPosts(reddit) {
  store.dispatch(requestPosts(reddit));
  return fetch(`http://www.reddit.com/r/${reddit}.json`)
      .then(response => response.json())
      .then(json => store.dispatch(receivePosts(reddit, json)))
  }
}

显然,我不能
分派
这个函数,但这似乎并不十分重要。我遗漏了什么?

可能重复的可能重复的哦。对不起@user5325596的参考是更有用的参考。