javascript - forEach循环yield 出错
PHPz
PHPz 2017-04-11 13:19:32
[JavaScript讨论组]

lamb是一组函数.

const sign = ['red', 'green', 'yellow'];

function tic(str, timer) {
  return () => new Promise((res, rej) => {
    setTimeout(() => {
      console.log(str);
      res();
    }, timer);
  });
}

const lamb = sign.reduce(function (prev, item) {
  prev.push(tic(item, 1000));

  return prev;
}, []);
const gen = function* () {
  lamb.forEach(function (item, index) {
    yield item();
  });

  // for(let i = 0; i < lamb.length; i++) {
  //   yield lamb[i]();
  // }

  //for(let i in lamb) {
    //yield lamb[i]();
//  }
}

为什么 forEach不行(报错Unexpected identifier),for(let i = 0; i < lamb.length; i++) /for(let i in lamb)可以?

PHPz
PHPz

学习是最好的投资!

全部回复(3)
高洛峰

注意,forEach里面你是传了一个函数进去,所以你的yield语句实际上在一个不是生成器的函数里面,所以当然报错。

迷茫

forEach 方法的参数是一个普通函数,里面用yield语句会报错
改用for循环即可

PHP中文网

1楼说的对。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号