JavaScript理解笔记——generator生成器

是一种    数据类型,一个 generator看着像一个函数,但可以返回多次。(JavaScript的生成器借鉴了python的生成器)
区别:
generator:					函数:
function*  foo(x){					function  foo(x){
yield x+1;		//返回值
yield x+2;		//返回值
return x+3;}  		//返回值			return x+1;}
直接调用生成器: foo(5);仅仅是创建一个generator,并不执行。
调用generator的方法有:
1⃣️:(手动)不断调用generator的next()方法。
foo(5).next();		//{value:6,done:false}
foo(5).next();		//{value:7,done:false}
foo(5).next();		//{value:8,done:true}
next()方法执行generator的代码,每遇到一个yield,就返回一个 对象:    {value:值,done:true或false},然后暂停。done表示generator是否执行结束,value是yield的返回值。若done是true,则value是return的返回值,此generator执行完毕,不能再调用next()。
2⃣️:用for ...of...循环迭代generator对象(不需自己判断done)。
for( var  x  of  foo(5) ){
console.log(x);}		//输出为:	6,7,8


generator作用:
1⃣️:generator可以在执行中多次返回,可以理解为一个   能记住执行状态的函数。
2⃣️:把异步回调代码变成同步代码。(AJAX)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
generator-lego 基于 gulp 的前端工作流 快速开始 提供以下2种获取方式: Clone the repo git clone git@github.com:duowan/generator-lego.git 在克隆目录执行 npm link 链接到全局模块的位置 在空目录执行 yo lego 初始化项目 npm npm install -g generator-lego 在空目录执行 yo lego 初始化项目 文件结构 generator-lego 初始化和执行任务涉及的文件结构: yourProj/ │ ├── package.json                // 项目依赖定义 ├── gulp.js                     // 配置任务 │ ├── node_modules                // `npm install` 拉取依赖包 │ ├── src/                        // 开发目录 │    ├── css/                    │    │   └── global.css         // 经过sass编译后的出口css文件 │    ├── sass/                  // sass源文件 │    ├── img/                   // 仅 Copy 不做操作 │    ├── js/                    // 仅 Copy 不做操作 │    └── index.html              │     └── dest/                       // 发布目录,执行 `gulp release` 生成     ├── css/                         │   └── global.css     ├── img/                        ├── js/                          └── index.html 环境准备 Node 环境:默认此步骤已完成  (Mac用户建议使用 Brew 安装 Node.js) Yeoman环境:npm install -g yo Gulp 环境:npm install -g gulp 任务说明 初始化项目 执行yo lego,初始化PC类的项目。 或者,执行yo lego:mobi,初始化移动类型的项目。 开发 gulp 创建一个链接,自动检测src文件夹下的静态文件,自动刷新。支持sass编译。 gulp -p 8080 同上,-p参数指定特定端口。 发布 gulp release 将静态文件压缩到 dest/。 标签:generator

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值