所以我们为其添加 then 办法, 在 then 办法琅绫擎接着运行 next 办法挪移遍历器指针,直到 Generator 函数运行完成,实际上,这个过程我们不必手动完成,可以封装成一个简单的履行器
- function run(gen){
- var g = gen()
- function next(data){
- var res = g.next(data)
- if (res.done) return res.value
- res.value.then((data) => {
- next(data)
- })
- }
- next()
- }
run 办法用来主动运行异步的 Generator 函数,其实就是一个递归的过程调用的过程。如许我们就不必手动履行 Generator 函数了。 有了 run 办法,我们只须要如许运行 getData 办法
异步履行可以用回调函数实现。
如许,我们就可以把异步操作封装到 Generator 函数内部,应用 run 办法作为 Generator 函数的自履行器,来处理异步。其实我们不难发明, async/await 办法比拟于 Generator 处理异步的方法,有很多类似的处所,只不过 async/await 在语义化方面加倍明显,同时 async/await 不须要我们手写履行器,其内部已经帮我们封装好了,这就是为什么说 async/await 是 Generator 函数处理异步的语法糖了。
【编辑推荐】
- Go说话如不雅按如许改进,能不克不及火过Java?
- 如何在java中定义一个抽象属性
- Java若何实现长图文生成
- Java多线程 —— 线程怎么来的?
- 浅谈JavaScript中的接话柄现
三、Promise
推荐阅读
Victor告诉记者,在设备全部治理周期中,安然是最特别的一环,它不仅仅是贯穿全部周期,更重要的是,它必须在>>>详细阅读
本文标题:浅谈JavaScript中的异步处理
地址:http://www.17bianji.com/lsqh/36972.html
1/2 1