对于es6的小小理解之generator函数
相信很多学js的人都看过es6,我也是最近才看的es6标准。下面我来说一下我对es6笼统的看法,如有不对欢迎评论交流。
js有很长很长的历史,大家应该都有了解过。es6是15年发布的版本,由TC39主持对这个标准进行修改。对于我这种比较浅显程度的理解来说,里面的箭头函数,let和count,以及一些数学运算符的增加让我写代码更舒服了。本人觉得标准的更改主要在两个方面,一是支持更加简洁有效的赋值和变量的扩展,另一方面是引入了新的方法的语法和应用。
第一次看完,印象最深的是generator函数。与平常的函数不同,它可以理解为是一个分布执行的函数,返回值是一个遍历器。例子我就不举了,外部可以通过next(),thow()和return()调用,只是调用的形式不同。在应用方面主要是异步调用,不同于以前的回调函数和Promise(Promise算是对回调函数解决嵌套繁琐问题提出的)。它在每一个yield中部署自己的异步操作,等到需要执行的时候再调用。这算是回调函数的改写。generator函数和Ajax可以一起进行同步操作。它的分布执行的特性决定了它对耗时大的多步操作有很大的改进(generator如果你不执行,那之后的程序系统不会编译)。部署Iterator接口:generator函数可以再任何对象上部署Iterator接口。
这是我对于generator函数的一点浅显理解,es6很多函数还是很有用处的,先试着用用es6,过段时间再看一遍。
转载于:https://www.cnblogs.com/lankongclub/p/7999237.html
对于es6的小小理解之generator函数相关推荐
- ES6学习(九)—Generator 函数的语法
ES6学习(九)-Generator 函数的语法 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同. Generator函数是一个状态机,内部封装了不同状态的 ...
- es6 作为对象属性的Generator函数
作为对象属性的Generator函数 如果一个对象的属性是 Generator函数,可以简写成下面的形式. let obj = { * myGeneratorMethod() { ··· } }; 上 ...
- 理解 ES6 Generator 函数
Generator函数是ES6引入的新型函数,用于异步编程,跟Promise对象联合使用的话会极大降低异步编程的编写难度和阅读难度. Generator函数跟普通函数的写法有非常大的区别: 一是,fu ...
- es6中Generator函数的理解
Generator函数的定义 形式上,Generator函数是一个普通函数,但是有两个特征. 一是,function关键字与函数名之间有一个星号: 二是,函数体内部使用yield表达式,定义不同的内部 ...
- 【ES6】Generator函数详解
[ES6]Generator函数详解 一.Generator函数简介 基本概念 函数写法 yield关键字介绍 二.next方法的参数 三.for...of循环 四.关于普通throw()与Gener ...
- es6 Generator函数的含义
Generator函数的含义 Generator 与状态机 Generator 是实现状态机的最佳结构.比如,下面的clock函数就是一个状态机. var ticking = true; var cl ...
- es6 Generator函数概述
概述 什么是Generator函数 Generator函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同.本章详细介绍 Generator函数的语法和 API,它的异步编程应用请看 ...
- ES6——Generator 函数的语法
Generator 函数是一个状态机,封装了多个内部状态.执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数.返回的遍历器对象 ...
- ES6语法总结(21)--Generator函数的异步应用
Generator 函数的异步应用 传统方法 基本概念 Generator 函数 Thunk 函数 co 模块 异步编程对 JavaScript 语言太重要.JavaScript 语言的执行环境是&q ...
最新文章
- 面试常碰到++p/p--问题到底结果是什么?
- Nagios的安装和基本配置(二:Nagios-Server的安装)
- git进入项目目录 windows_Windows下搭建Git服务器
- php heredoc 开启,PHP中nowdoc和heredoc使用需要注意的一点
- CVE-2010-3333
- 东大18秋计算机网络在线作业1答案,东大17秋学期《计算机网络基础》在线作业3 免费答案...
- 如何创建并运行java线程
- 反思代码能力提升方法:重构 多写 知识面
- checkbox 选中的id拼接长字符串
- 使用Azure Functions玩转Serverless
- 访问修饰符 public private protected default
- esxi linux 网络不可达,将ESXI所有的端口组迁移到分布式交换机的步骤
- 浅析信息化项目的信息化绩效评价
- 基于tushare和python的证券市场价格分析
- Bean Validation——自定义注解
- 谷歌图像识别 API
- OpenCV 对象跟踪
- 执念斩长河入CSDN的第一篇日志
- 墨翟科技(上海)有限公司
- 阿里mysql密码_阿里云自带mysql 密码