对于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,过段时间再看一遍。
对于es6的小小理解之generator函数的更多相关文章
- ES6中的迭代器、Generator函数以及Generator函数的异步操作
最近在写RN相关的东西,其中涉及到了redux-saga ,saga的实现原理就是ES6中的Generator函数,而Generator函数又和迭代器有着密不可分的关系.所以本篇博客先学习总结了ite ...
- Generator函数的语法
简介 Generator函数是ES6关于异步编程的解决方案.Generator函数能够让函数暂停执行(即交出函数的执行权),简单直白点来理解,Generator函数就是一个状态机,内部封装了多个状态( ...
- 转: ES6异步编程:Generator 函数的含义与用法
转: ES6异步编程:Generator 函数的含义与用法 异步编程对 JavaScript 语言太重要.JavaScript 只有一根线程,如果没有异步编程,根本没法用,非卡死不可. 以前,异步编程 ...
- ES6的generator函数
generator是什么? generator是ES6提供的一种异步编程解决方案,在语法上,可以把它理解为一个状态机,内部封装了多种状态.执行generator,会生成返回一个遍历器对象.返回的遍历器 ...
- ES6新特性三: Generator(生成器)函数详解
本文实例讲述了ES6新特性三: Generator(生成器)函数.分享给大家供大家参考,具体如下: 1. 简介 ① 理解:可以把它理解成一个函数的内部状态的遍历器,每调用一次,函数的内部状态发生一次改 ...
- ES6的新特性(17)——Generator 函数的异步应用
Generator 函数的异步应用 异步编程对 JavaScript 语言太重要.Javascript 语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可.本章主要介绍 Gener ...
- ES6的新特性(16)——Generator 函数的语法
Generator 函数的语法 简介 基本概念 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同.本章详细介绍 Generator 函数的语法和 API,它的 ...
- ES6学习笔记(十五)Generator函数的异步应用
1.传统方法 ES6 诞生以前,异步编程的方法,大概有下面四种. 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段. ...
- ES6学习笔记(十四)Generator函数
清明时节雨纷纷,路上行人欲断魂. 借问酒家何处有,牧童遥指杏花村. 二零一九年农历三月初一,清明节. 1.简介 1.1.基本概念 Generator 函数也是 ES6 提供的一种异步编程解决方案,据说 ...
随机推荐
- Redis集群方案之使用豌豆荚Codis搭建(待实践)
Codis的模式类似Twemproxy,不过这东西引入了ZooKeeper做为Redis的注册与发现来实现高可用. 部署时需要额外增加应用的部署,请根据业务需求来衡量. 部署图类似如下: 当然,上面的 ...
- JSP的生命周期
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/life-cycle.html: JSP生命周期可以被定义为从创建到销毁的整个过程,这类似于一个Servl ...
- 2、Java并发性和多线程-多线程的优点
以下内容转自http://ifeve.com/benefits/: 尽管面临很多挑战,多线程有一些优点使得它一直被使用.这些优点是: 资源利用率更好 程序设计在某些情况下更简单 程序响应更快 资源利用 ...
- linux内核CFS进程调度策略
一.概述 首先简介一下主要的设计思路, CFS思路非常easy.就是依据各个进程的权重分配执行时间(权重怎么来的后面再说). 进程的执行时间计算公式为: 分配给进程的执行时间 = 调度周期 * 进程权 ...
- pipenv 的使用
pipenv 的使用 学习了:https://blog.csdn.net/chroming/article/details/77104873?locationNum=4&fps=1 https ...
- ShadowDOM
HTML5 ShadowDOM & CustomElements KeKeMars 关注 2015.12.09 15:20* 字数 1239 阅读 1626评论 2喜欢 2 Web组件由四部分 ...
- Unix - 文件里构成一个空洞的分析
lseek函数显示地为一个打开文件设置偏移量,文件偏移量能够大于文件的当前长度,在这样的情况下.对该文件的下一次写将加长该文件.并在文件里构成一个空洞,这一点是同意的. 位于文件里但没有写过的字节都被 ...
- Cocos2d-x项目创建
以创建HelloWorld项目为例子,执行create_project.py脚本,进入Doc界面输入下面的命令: (1)E: (切换盘符,因为我的Cocos2d-x源码在E盘,create_pro ...
- Silverlight调用一般性处理程序模拟Silverlight调用WCF效果(2)
[置顶] Silverlight调用一般性处理程序模拟Silverlight调用WCF效果(2) 分类: 技术2012-03-31 12:51 548人阅读 评论(0) 收藏 举报 silverlig ...
- 【Codevs3151】交通管制I
Position: http://codevs.cn/problem/3151/ List [Codevs3151]交通管制I List Description Input Output Sample ...