ES6学习笔记七Generator、Decorators
Generator异步处理
{
    // genertaor基本定义,next()一步步执行
    let tell=function* (){
        yield 'a';
        yield 'b';
        return 'c'
    };
    let k=tell();
    console.log(k.next()); //{value: "a", done: false}
    console.log(k.next()); //{value: "b", done: false}
    console.log(k.next()); //{value: "c", done: true}
    console.log(k.next());//{value: undefined, done: true}
}
应用场景
// 应用场景,变量变化的实时存储
{
let draw=function(count){
// 具体抽奖逻辑
console.info(`剩余${count}次`)
} let residue=function *(count){
while(count>){
count--;
yield draw(count);
}
} let star=residue();
let btn=document.createElement("button");
btn.id='star';
btn.textContent='抽奖';
document.body.appendChild(btn);
document.getElementById('star').addEventListener("click",function(){
star.next();
},false)
}
长轮询(服务端某个状态在变化,我们也需要实时去访问变化)
{
    // 长轮询(服务端某个状态在变化,我们也需要实时去访问变化)
    let ajax=function* (){
        yield new Promise(function(resolve,reject){
            setTimeout(function(){
                resolve({code:})
            },);
        })
    }
    let pull=function(){
        let genertaor=ajax();
        let step=genertaor.next();
        step.value.then(function(d){
            if(d.code!=){
                setTimeout(function(){
                    console.info('wait');
                    pull()
                },);
            }else {
                console.log(d);
            }
        })
    }
    pull();
}
Decorator函数修饰符,通过修饰器修改类的行为
ES6学习笔记七Generator、Decorators的更多相关文章
- ES6学习笔记七:生成器与异步操作
		一:Generator Generator 函数是一个普通函数,但是有两个特征.一是,function关键字与函数名之间有一个星号:二是,函数体内部使用yield表达式,输出不同的内部状态. 执行 G ... 
- es6学习笔记-class之一概念
		前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ... 
- ES6学习笔记<三> 生成器函数与yield
		为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ... 
- (转)Qt Model/View 学习笔记 (七)——Delegate类
		Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ... 
- Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
		中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ... 
- Typescript 学习笔记七:泛型
		中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ... 
- ES6学习笔记<五> Module的操作——import、export、as
		import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ... 
- ES6学习笔记<四> default、rest、Multi-line Strings
		default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ... 
- ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring
		接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ... 
随机推荐
- OGNL中的#、%和$符号的用法
			转自:https://blog.csdn.net/qq_24963197/article/details/51773224 一.OGNL中的#.%和$符号 1.#符号的三种用法 1)访问非根对象属性, ... 
- Shell中变量扩展操作
			假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir ... 
- iptables之NAT端口转发设置
			背景:服务器A:103.110.114.8/192.168.1.8,有外网ip,是IDC的一台服务器服务器B:192.168.1.150,没有外网ip,A服务器是它的宿主机,能相互ping通服务器C: ... 
- scrapy框架使用教程
			scrapy框架真的是很强大.非常值得学习一下.本身py就追求简洁,所以本身代码量很少却能写出很强大的功能.对比java来说.不过py的语法有些操蛋,比如没有智能提示.动态语言的通病.我也刚学习不到1 ... 
- Linux记录-salt命令
			salt '*id*' test.ping salt -N 组名 cmd.run '' salt -G "ipv4:0.0.0.0" cmd.run '' salt '*i ... 
- Ruby on Rails,一对多关联(One-to-Many)
			在上一篇文章中,我们知道通过has_one和belongs_to方法定义一对一关联关系.接下来是更常见的情况,一对多关联.比如老师与所教课程的关系,一个老师负责多个课程.换成对象之间的关系就是:一个老 ... 
- IIS Express URL Rewrite无效
			点击一下项目,再选择属性选项卡(不是右键属性) 如上图,如果托管管道模式是集成的话,改为经典即可.如果在vs2010的 WebDev.WebServer40方式启动 默认就是经典模式 
- HDB3编码器
			一.HDB3 码介绍 三阶高密度双极性码(英语:High Density Bipolar of Order 3 code,简称:HDB3码)是一种适用于基带传输的编码方式.它是一种 AMI 码的改进型 ... 
- (15)DeleteColumnsMakeSortedIII
			一.问题描述 给定一个字符串形的数组,求最小的删除数目,使得删除后的字符串是字典型有序的. 二.思路Code package algorithm; /** * Created by adrian.wu ... 
- cpp typename关键字
			泛型编程关键字,C#内也有这个概念. 从属名称(dependent names):模板(template)内出现的名称, 相依于某个模板(template)参数, 如T t; 嵌套从属名称(neste ... 
