为什么redux-thunk处理异步的时候需要返回一个函数?
来源:7-32 Redux action如何处理异步

Brannua
2020-06-04
- 老师好~
- 同步actionCreator如下
export const addTodo = (data) => {
return {
data,
type: 'ADD_TODO'
}
}
- 这个时候我如果想要让actionCreator处理一些异步逻辑,那么我似乎是可以使用async/await或promise的方式在actionCreator中处理,处理完返回一个对象就好了
async function addTodoAsync_2() {
const data = await fetch(url);
return {
data,
type: 'ADD_TODO'
}
}
- 我就好奇,为什么redux-thunk这个中间件它要返回一个函数,在这个函数中处理异步呢?难道只有返回一个函数才能处理异步吗?希望老师帮忙分析一下原因和优劣,不胜感激~
写回答
1回答
-
首先你要知道,await 只是一个异步的语法糖,看着像是同步的写法,但实际上 await 后面的代码也类似于 callback 一样,会异步执行。不知道你有没有学过 https://coding.imooc.com/class/400.html 这门课,这门课下周会升级一次,里面会专门讲 await 异步的本质。
明白了这一点,你就能理解用函数的好处了。
082020-06-17
相似问题