请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么redux-thunk处理异步的时候需要返回一个函数?

  • 老师好~
  • 同步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 21:51:08

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 Brannua #1
    恩恩老师您的两门面试课我都在学,都很棒,await 应该是可以取出promise resolve中传过来的数据,所以对这里有些疑问...
    回复 有任何疑惑可以回复我~ 2020-06-04 22:01:38
  • 双越 回复 提问者 Brannua #2
    等几天,先学完 await ,再来回顾这个问题。
    回复 有任何疑惑可以回复我~ 2020-06-04 22:48:37
  • 提问者 Brannua 回复 双越 #3
    好嘞老师o(^o^)o
    回复 有任何疑惑可以回复我~ 2020-06-04 22:56:59
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信