generator 和 yield的使用
ECMAScript 6 第四讲
本章目标:
本章内容:
generator 和 yield的使用:
Generator主要是用于异步编程,就是封装一个异步任务或者是异步任务的容器
特点是:可以交出函数执行权(暂停执行)
在声明函数的function关键字与函数名之间有一个*(用于区别不同函数)
yield在generator函数体内使用,可以定义不同的内部状态(可以设置不同时候不一样的值)
yield命令是异步不同阶段的分界线,有时候也会把yield当成是return(当然有本质区别)
使用启动next(),分阶段执行generator函数
generator 这时候我们可以多调用几次来看一下效果
我们看到这时候才都运行完,那么我们可以感觉到是不是把一个函数分成了几段分别执行了呢?我们可以函数传参来看一下
我们可以看到效果,发现第一个无效,第二个才看是接受到返回值
我们还可以接收他的返回值
我们可以看到结果
我们看到返回的是对象,里面有两个值,第一个是返回的参数,第二个是bool类型的,为false表示当前的函数没有执行完,为true表示函数执行完了
Map数据结构:
Map数据结构类似于对象,是键值对的集合。传统的键只能用字符串,map的键不限于字符串,各种类型的值包括对象都可以当键
属性和操作方法:
Size属性:返回map结构的成员总数
Set(key,value)
Set设置键名key,键值value,然后返回整个map结构。如果key已经有值,则键值会被更新,否则就新生成该键
map
模块module:
Export命令:用于规定模块的对外接口
我们可以理解成一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。
如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字
模块化是怎么用的?我们可以来看一下
新建一个js文件
我们才创建一个js文件,用来导入
创建html使用模块化
那么我们也可以简化导入
模块化的优点:
减少命名冲突
避免引入是层层依赖
可以提升执行效率
generator 和 yield的使用相关推荐
- koa源码分析-generator和yield分析
Generator和yield 分析 项目中使用了koa,最近在学习koa的源码,先把这些东西都写下来,免得以后忘记了. koa源码学习前先注意下面这三个概念 generator function ( ...
- ES6——generator与yield
文章目录 一.Generator生成器函数 1. 特点 2. 关联概念 二.yield的加入 1. 引入 2. yield 特点 三.举个例子 一.Generator生成器函数 它是ES6新推出的一种 ...
- python generator iterator_Python:Iterator、Generator和Yield总结
一.Iterator和Iterable 首先,要明白Iterable可迭代对象 和Iterator 迭代器的区别. 类中实现了__iter__(),那就认为它有迭代能力,其对象即可迭代对象,具有迭代能 ...
- python生成器yield原理_Python generator生成器和yield表达式详解
前言 Python生成器(generator)并不是一个晦涩难懂的概念.相比于MetaClass和Closure等概念,其较为容易理解和掌握.但相对于程序结构:顺序.循环和分支而言其又不是特别的直观. ...
- python生成器单线程_【Python】迭代器、生成器、yield单线程异步并发实现详解
转自http://blog.itpub.net/29018063/viewspace-2079767 大家在学习python开发时可能经常对迭代器.生成器.yield关键字用法有所疑惑,在这篇文章将从 ...
- 实际上,Python 3.3中新的“ yield from”语法的主要用途是什么?
本文翻译自:In practice, what are the main uses for the new "yield from" syntax in Python 3.3? I ...
- Generator简单了解
Generator是一个生成器,它生成的到底是什么呢? Ta生成的就是一个 Iterator对象 . function *gen() {yield 1;yield 2;return 3; }const ...
- Generator执行步骤浅析
在Generator函数出现之前JS的函数只能返回一个值,返回的方式就是return,但是Generator函数可以返回多个值,返回的方式是yield.并且Generator赋予了外部动态影响函数内部 ...
- Python中生成器generator和迭代器Iterator的使用方法
一.生成器 1. 生成器的定义 把所需要值得计算方法储存起来,不会先直接生成数值,而是等到什么时候使用什么时候生成,每次生成一个,减少计算机占用内存空间 2. 生成器的创建方式 第一种只要把一个列表生 ...
最新文章
- javascript里的偏函数——本质函数式编程+闭包,返回函数
- 【机器学习算法-python实现】矩阵去噪以及归一化
- 修改归档模式的存档终点 archive log list
- 【中级软考】什么是McCabe测量法(McCabe复杂性度量、环路度量。计算有向弧数、结点数、强连通分量个数)
- IDEA2020版本如何导入jar包
- 训练的神经网络不工作?一文带你跨过这37个坑
- 开源WPF控件库MaterialDesignInXAML推荐
- 二叉树的递归遍历与复制
- Apple Watch用户终于能对部分预装应用说不了 包括闹钟、定时器等
- AcWing 898. 数字三角形
- 傻瓜攻略(十九)——MATLAB实现SVM多分类
- CHM Editor V1.3.3.7(chm编辑、修改chm文件、chm编辑器)
- Android使用zxing生成二维码
- 不登陆路由器查询路由器IP地址和物理地址
- Simon写作翻转课笔记
- java面试宝典:留着慢慢看
- 双译记:UCLA朱松纯团队验证机器人任务中可解释性,登Science子刊
- 网站HTPPS加密有什么作用
- codec engine 编译
- ArcGis制作三维地形图教程
热门文章
- 尾递归及快排尾递归优化
- 小白也能学会的 Git 常用指令指南
- DevC++怎么更改背景颜色
- 【言简意赅】四句话搞懂第一范式,第二范式,第三范式,以及BCNF
- 僵尸进程孤儿进程与守护进程
- linux自动化安装oracle,ftp的客户端软件 Linux环境一键自动化安装oracle软件的构想(附she...
- oracle12c完全卸载工具_oracle完全卸载方法
- python横向合并merge_【Python代替Excel】7:merge、concat、append
- python2.7安装scrapy_python 2.7 的Scrapy安装介绍
- php.ini不见了,php.ini找不到