最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS异步实现Generator的方法

来源:动视网 责编:小采 时间:2020-11-27 20:12:10
文档

JS异步实现Generator的方法

JS异步实现Generator的方法:一、Symbol数据类型 ES6中新增加了Symbol数据类型。 原生具有[Symbol.iterator]属性的数据类型:数组、类数组、map、set、 具有[Symbol.iterator]属性的对象,直接调用就可以生成一个Iterator对象二、Iterator对象:是一个指针对象,遍历器对象 方
推荐度:
导读JS异步实现Generator的方法:一、Symbol数据类型 ES6中新增加了Symbol数据类型。 原生具有[Symbol.iterator]属性的数据类型:数组、类数组、map、set、 具有[Symbol.iterator]属性的对象,直接调用就可以生成一个Iterator对象二、Iterator对象:是一个指针对象,遍历器对象 方

一、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的方法

JS异步实现Generator的方法:一、Symbol数据类型 ES6中新增加了Symbol数据类型。 原生具有[Symbol.iterator]属性的数据类型:数组、类数组、map、set、 具有[Symbol.iterator]属性的对象,直接调用就可以生成一个Iterator对象二、Iterator对象:是一个指针对象,遍历器对象 方
推荐度:
标签: 方法 实现 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top