Asynchronous 你有什么好处;“异步操作”;你带来了什么?
表示要执行异步调用,通常会涉及一个指示异步调用开始的操作,以及一个指示异步调用完成的后续操作,我应该使用“thunk”中间件。这让我可以这样写“动作创造者”: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
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的参考是更有用的参考。