为什么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回答

双越

2020-06-04

首先你要知道,await 只是一个异步的语法糖,看着像是同步的写法,但实际上 await 后面的代码也类似于 callback 一样,会异步执行。不知道你有没有学过 https://coding.imooc.com/class/400.html 这门课,这门课下周会升级一次,里面会专门讲 await 异步的本质。

明白了这一点,你就能理解用函数的好处了。

0
8
Brannua
回复
双越
恩恩, 老师谢谢您~
2020-06-17
共8条回复

前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4695 学习 · 1667 问题

查看课程