Generator 与 Promise 一起使用 简单实现 await
Posted passerbyone
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Generator 与 Promise 一起使用 简单实现 await相关的知识,希望对你有一定的参考价值。
function* bar() { const result = yield new Promise((resolve, reject) => { setTimeout(() => { resolve(‘Hello Generator‘); }, 3000); }); console.log(result); } var it = bar(); it.next().value.then(res => { // 将获取到到 promise 值再传到 generator 内 // result就能接收到 异步的值 简单实现了异步函数同步编写的效果 it.next(res) })
如果对上面不是很理解可以看看下面简单的代码
function* gn() { var gitem = yield 4; console.log(gitem) } var git = gn() git.next(); // 执行下面next 就会打印出 9 了 // 其实第二次将 9 是赋值到 gitem 变量上 然后再接着执行下面的语句 git.next(9);
以上是关于Generator 与 Promise 一起使用 简单实现 await的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript异步编程:Generator与Async