关于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回答
-
有了 yield 断点,就会在这行代码,一口气把这个函数全部执行完毕,同时拿到这个函数的返回结果,再往下执行下一行代码,顺序是同步的,即便是异步的操作,在这里也会表现为同步的,如果是非异步的操作,是不必用 yield,如果是有异步的操作,通过 yield 和 koa 结合,这里就可以保证安全的代码书写顺序和函数执行顺序
012016-11-30
相似问题