美文网首页
36-Genertor函数

36-Genertor函数

作者: 早起的鸟儿 | 来源:发表于2019-11-05 15:31 被阅读0次

一、概述
Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。
二、格式

{
    let fn = function*(){
        return 111
    }
    console.log( fn().next() )  //{value: 111, done: true}
}

Generator函数的调用方法与普通函数一样,也是在函数名后面加上一对圆括号。不同的是,调用Generator函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象,也就是上一章介绍的遍历器对象(Iterator Object)。

下一步,必须调用遍历器对象的next方法,使得指针移向下一个状态。也就是说,每次调用next方法,内部指针就从函数头部或上一次停下来的地方开始执行,直到遇到下一个yield语句(或return语句)为止。换言之,Generator函数是分段执行的,yield语句是暂停执行的标记,而next方法可以恢复执行。

{
    let fn = function*(){
        yield 'a',
        yield 'b',
        yield 'c'
    }
    let f = fn()  //必须给一个变量不然重复调用第一次
    console.log( f.next() )  
    console.log( f.next() ) 
    console.log( f.next() ) 
}

什么时候会用到下一步,比如录入信息会遇到下一步下一步
举个🌰

//1.返回统计剩余次数
{
    let num = function (count) {
        console.log(`剩余${count}次`)
        //剩余4次
        //剩余3次
        //剩余2次
        //剩余1次
        //剩余0次
    }

    let res = function* (count) {
        while (count > 0) {
            count--;
            yield num(count)
        }
    }
    let start = res(5);
    let btn = document.createElement("button");
    btn.innerHTML = "抽奖";
    btn.id = "btn";
    document.body.appendChild(btn);
    document.getElementById("btn").addEventListener("click", function () {
        start.next()
    })
}

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

      本文标题:36-Genertor函数

      本文链接:https://www.haomeiwen.com/subject/bzncmctx.html