Advertisement

前端进阶ES6生成器学习及生成器与Promise结合应用

阅读量:

前言:

在这里插入图片描述

ES6生成器是一种可以实现看似同步的异步流程控制表达风格。

1.1 打破完整运行

在代码中几乎普遍依赖的一个假设:一个函数一旦启动就会执行到底,在整个过程中不会受到其他代码插入干预。这一假设是错误的观点。ES6引入了一种新的函数类型,在这种情况下不会执行到底的特点,在这类新功能中被称为生成器

看下面代码:

复制代码
    var x=1;
    function *foo(){
      x++;
      yield;//暂停
      console.log("x:",x);
    }
    function bar(){
      x++;
    }

ES6代码中只是暂停点的语法是yield。运行到这里,程序会暂停。

注意:在许多地方生成器声明格式为 function* foo(){} , 而非我所采用的 format function *foo(){} ; 唯一的区别在于 格式的摆放位置不同 。这两种实现方式本质上完全一致

看下面代码如何运行生成器:

复制代码
    	var it=foo();

全部评论 (0)

还没有任何评论哟~