Generator与多异步操作的问题

En•Nam 2019-09-11 02:28:24
这里有一个包含多个异步请求的生成器函数:
function * getApiFetch(){
const data1 = yield asyncFetch1()
const data2 = yield asyncFetch2()
const data3 = yield asyncFetch3()
//...
const datan = yield asyncFetchn()
return {data1,data2,data3,...datan}
}

const it = getApiFetch()
问题:如何处理it,能得到{data1,data2,data3,...datan}这个预期的结果?
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
En•Nam 2019-09-11
  • 打赏
  • 举报
回复
因为我在使用redux-saga时,其异步的reducer(effects)中,我写一个异步请求和写多个连续的异步请求,哪怕我后一个异步请求需要前一个异步请求的结果。都能得到预期的结果。
其es6源码被babel编译过了。一大堆的 (0,_xxxxx.default)(type,XXX),看不明白。
所以希望有朋友能指点一下。
scscms太阳光 2019-09-11
  • 打赏
  • 举报
回复
    async function getApiFetch(){
const data1 = await asyncFetch1()
const data2 = await asyncFetch2()
const data3 = await asyncFetch3()
//...
const datan = await asyncFetchn()
return {data1,data2,data3,...datan}
}
(async function(){
const arr = await getApiFetch() //这样是可以的
}())
HQChart 2019-09-11
  • 打赏
  • 举报
回复
getApiFetch() 只能做成异步,同步好像做不了。 用Promise then ......then。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧