关于yield的疑惑

来源:4-2 第四天 封装消息响应模块

wenwu_x

2016-11-17

scott老师在Generator里面用了两个yield,我的理解是:原来的Generator流程在yield处暂停,转去执行util.parseXMLAsync,待parseXML函数执行完再回到生成器函数(借助于Koa框架)接着往下执行;第二个yield handler.call(this, next)流程也是如此。。如果是这样的话,在原来的这个生成器函数里面还有用yield的必要么?因为我理解这里本身就是一个同步顺序执行过程,还需要yield控制么?

nodejs小白,希望老师莫介意

写回答

1回答

Scott

2016-11-17

有了 yield 断点,就会在这行代码,一口气把这个函数全部执行完毕,同时拿到这个函数的返回结果,再往下执行下一行代码,顺序是同步的,即便是异步的操作,在这里也会表现为同步的,如果是非异步的操作,是不必用 yield,如果是有异步的操作,通过 yield 和 koa 结合,这里就可以保证安全的代码书写顺序和函数执行顺序

0
1
wenwu_x
非常感谢!
2016-11-30
共1条回复

7天搞定Node.js微信公众号

Koa框架、ES2015新特性、MongoDB,开发微信公众号

1742 学习 · 787 问题

查看课程