老师我问一个Generator 函数的问题
来源:
mario
2016-07-12
我已经跟到了最后一天的倒数第三节课了,收益颇多,越到后面我就想为什么老师要这么写,为什么老师要这么改代码,这不,我遇到了一个问题,想了好几天,就是生成器函数问题,也特意回去看了第二天的课程,发现老师讲的也不是特别清楚,我就去看别人写的文章,也懂了不少,不过还有一个问题我实在想不通,就特此开个帖问一下老师。
起初老师在中间件generator函数中yield后面跟的都是promise函数,这也是老师经常的处理方式方式
然后我们就可以通过yield 将控制权讲给parseXMLAsync函数,然后再通过next(content)赋予左边的变量
以上是第一种方式,还有一种方式是第七天教程中刚刚写到的就是下面这个
这个就是很多人说的thunk函数
yield右边函数返回的是一个带有回调函数的函数,因为可以在回调函数里,将执行权交还给 Generator 函数。
除次之外还可以接另外一个生成器函数比如
除此yield还可以接generator函数数组,对象
可是可是我不明白的是为什么yield可以接这个普普通通的函数,就是数据库查询
在exec中只有普通的回调函数,它并不是thunk函数也不返回promise对象
难道koa会将这个转成promise对象,因为koa用的是co库,co现在都转成了promise,是这样理解吗
感觉自己钻牛角尖了,不过很希望搞明白这个
写回答
2回答
-
是的,koa用的是co库,co 能内部处理好普通对象,promise 和 geneatorFunction
012017-05-29 -
mario
提问者
2017-05-29
老师你这回复快一年了哈哈哈
00
相似问题