码迷,mamicode.com
首页 > 其他好文 > 详细

Generator 与 Promise 一起使用 简单实现 await

时间:2020-07-23 23:26:40      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:function   获取   赋值   arch   http   ocs   console   ref   实现   

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);

 

推荐看 阮一峰的教程https://es6.ruanyifeng.com/?search=filter&x=0&y=0#docs/generator#next%E3%80%81throw%E3%80%81return-%E7%9A%84%E5%85%B1%E5%90%8C%E7%82%B9

Generator 与 Promise 一起使用 简单实现 await

标签:function   获取   赋值   arch   http   ocs   console   ref   实现   

原文地址:https://www.cnblogs.com/PasserByOne/p/13368584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!