JS异步实现Generator
来源:互联网 发布:sql注入语句怎么使用 编辑:程序博客网 时间:2024/06/05 10:56
一、Symbol数据类型
ES6中新增加了Symbol数据类型。
原生具有[Symbol.iterator]属性的数据类型:数组、类数组、map、set、
具有[Symbol.iterator]
属性的对象,直接调用就可以生成一个Iterator
对象
二、Iterator对象:是一个指针对象,遍历器对象
方法:next():返回的格式为{value: ,done: }
使用for..of遍历: 每次遍历得到的是value值。
三、Geneteror
function* G(){
yield 200;
yield 300;
return 400;
}
var g=G();
1.Generator不是一个函数,定义generator时,使用function*,使用yield来返回结果。
2.调用Generator之后,它内部的代码不会立即执行,而是处于一个暂停的状态。并生成一个generator对象。
3.遇到yield
时,会执行yeild
后面的表达式,并返回执行之后的值,然后再次进入暂停状态,此时done: false
Generator返回的也是一个iterator对象,因此可以使用next方法、for..of
1.使用next方法时,next中的参数会传递给已经执行的yield前面的值。
2.yield*可以在一个Generator中引用另外一个Generator。
四、generator实现异步操作
1.需要thunk函数,只有一个参数,即回调函数
2.通常使用co库,对异步操作进行包装,方便简洁。
3.yield后面必须是thunk函数。
4.generator依然依靠callback
五、async-await:是Generator的语法糖
与Generator相比:
1.将function* 替代为 async function
2.将yield替代为await
3. await后面是promise对象。跟其他类型的数据也OK,但是会直接同步执行,而不是异步。
- JS异步实现Generator
- 用 Generator 实现 JS 异步流程控制
- JS异步之:回调/Promise/协程/Generator
- Node.js es6 generator 和 thunk 函数解决异步金字塔
- Js实现异步刷新
- JS 异步队列的实现
- JS的异步加载实现
- js实现伪异步操作
- js 异步实现与编程
- js异步的实现方式
- js 异步实现与编程
- js实现异步循环实现代码
- ES6-Generator与异步操作
- 学习JavaScript中的异步Generator
- 学习JavaScript中的异步Generator
- 异步 promise +generator+async(未完成)
- JS(三)generator
- JS学习-generator
- ssm项目上传图片
- CART分类回归树-(python3)
- 规划未来(上)
- 解决虚拟机安装ubuntu系统vmtools找不到安装文件
- ViewPager
- JS异步实现Generator
- 4-类型转换
- POJ1470 LCA(tarjan离线求最近公共祖先)
- POJ 1679 浅谈不严格次小生成树
- javascript引用数据类型和堆内存
- 2017年Java日志框架及工具综述
- BZOJ满框记录,排名999记录![BZOJ5040 的HINT]
- 利用Cookie进行自动登录相关代码
- The C Programming Language 练习题3-6