• 技术文章 >web前端 >前端问答

    es6中generator的用法是什么

    长期闲置长期闲置2022-05-05 14:51:32原创130

    在es6中,generator用于封装异步任务,是一个异步任务的容器,可以让函数按照指定的时间执行或者暂停;定义该函数时在function关键字和函数名之间有一个星号(*),语法为“function *name(){..yield..}”。

    本教程操作环境:windows10系统、ECMAScript 6.0版、Dell G3电脑。

    es6中generator的用法是什么

    Generator主要是异步编程,用来封装异步任务,是一个异步任务的容器,可以让函数按照我们指定的时候执行或者暂停。

    定义一个Generator函数和定义一个普通函数的区别在于:

    function关键字和函数名之间有一个 *(星号)。

    函数内部使用yield来定义每一个函数内部的状态。

    如果函数内部有return语句,那么他就是函数内部的最后一个状态。

    使用语法:

    function *name(){
    ...
    yield; //需要暂停的时候加yield
    ...
    yield;
    ...
    }
    const p = name();
    p.next() //调用函数,执行到第一个yield处停止
    p.next() //从上一个yeild开始执行,到下一个yield处为止

    来看一个简单的例子:

    // 定义
    function* sayHello() {
      yield 'hello';
      yield 'world';
      return 'ending';
    }
    // 调用
    // 注意,hw获取到的值是一个遍历器对象
    let g = sayHello();

    上面的例子,定义了一个名为sayHello的Generator函数,它内部有两个yield表达式和一个return表达式。所以,该函数内部有三个状态:hello,world 和 return语句(结束执行)。最后,调用这个函数,得到一个遍历器对象并赋值给变量g。

    Generator函数的调用方法与普通函数完全一样,函数名()。不同的是:

    【相关推荐:javascript视频教程web前端

    以上就是es6中generator的用法是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:ES6
    上一篇:es6的promise是什么意思 下一篇:es6字符串怎么去掉最后一个字符
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• es6中怎么判断对象是否为null• es6里面has()的用法是什么• es6遍历器是什么• es6中常量可以修改吗• es6中遍历跟迭代的区别是什么
    1/1

    PHP中文网