首页 > 其他分享 >生成器函数

生成器函数

时间:2023-08-01 15:58:00浏览次数:24  
标签:console 函数 生成器 next 执行 log

生成器函数

生成器函数是一个带星号函数,而且是可以暂停执行和恢复执行的。我们可以看下面这段代码:

function* genDemo() {
    console.log(" 开始执行第一段 ")
    yield 'generator 2'
 
    console.log(" 开始执行第二段 ")
    yield 'generator 2'
 
    console.log(" 开始执行第三段 ")
    yield 'generator 2'
 
    console.log(" 执行结束 ")
    return 'generator 2'
}
 
console.log('main 0')
let gen = genDemo()
console.log(gen.next().value)
console.log('main 1')
console.log(gen.next().value)
console.log('main 2')
console.log(gen.next().value)
console.log('main 3')
console.log(gen.next().value)
console.log('main 4')

执行上面这段代码,观察输出结果,你会发现函数 genDemo 并不是一次执行完的,全局代码和 genDemo 函数交替执行。其实这就是生成器函数的特性,可以暂停执行,也可以恢复执行。下面我们就来看看生成器函数的具体使用方式:

在生成器函数内部执行一段代码,如果遇到 yield 关键字,那么 JavaScript 引擎将返回关键字后面的内容给外部,并暂停该函数的执行。
外部函数可以通过 next 方法恢复函数的执行

标签:console,函数,生成器,next,执行,log
From: https://www.cnblogs.com/whh666/p/17596709.html

相关文章

  • Python-9-Python迭代器、生成器与装饰器
    9-1迭代器在本章之前的代码,for循环本质上是迭代器的应用。迭代器,可以理解为一个容器,循环的时候,每次从容器中取出一个数据,直到数据取完为止。foriinrange(1,10):print(i,end='')#123456789如何自定义一个迭代器1.以类为例,需要在类中定义两个方法:__iter......
  • C++函数传递函数指针、仿函数、绑定器、可调用对象
    只定义voidtestFunc(intnum,conststd::function<int(int)>&functor)就可以,其他的相当于这个函数的特化版本#include<iostream>#include<functional>usingnamespacestd;intfunc1(intnum){cout<<"func1:"<<num<<en......
  • Python 函数 类 语法糖
    Python语法糖\,换行连接Pythons=''s+='a'+'b'+'c'n=1+2+3#6while,for循环外的else如果while循环正常结束(没有break退出)就会执行else。Pythonnum=[1,2,3,4]mark=0whilemark<len(num):......
  • 记录每一天,lambda 与 函数式 接口。
    lambda与函数式接口01偶然遇到LocalDate的方法,真是太惊喜了,以前每次处理起时间,日期都要很头疼。当时真是烦人啊。学习过LocalDate后日期,与时间的处理感觉手到擒来啊,爱你LocalDate。学习过程中发现他是jdk1.8的新特性。您猜我又遇到了什么lambda表达式与函数......
  • 无涯教程-Lua - 函数声明
    函数是一起执行任务的一组语句,您可以将代码分成单独的函数。Lua语言提供了程序可以调用的许多内置方法。如方法print()打印在控制台中作为输入传递的参数。定义函数Lua编程语言中方法定义的一般形式如下-optional_function_scopefunctionfunction_name(argument1,argume......
  • Python-推导式和生成器表达式
    推导式利用[]或者{}可以定义列表推导式、集合/字典推导式,推导式的结果就是相应的列表,字典/集合数据类型。注意是没有元组推导式的,因为圆括号()被用来作为生成器表达式语法了。列表推导式ListComprehension用方括号[]包含内容,里面利用for[if]循环和相应的函数生......
  • Python高级过滤器:掌握filter函数从入门到精通
    简介在Python中,filter()是一个非常有用的内置函数,它能够根据指定的函数来筛选出可迭代对象中满足条件的元素,返回一个迭代器。filter()函数的使用能够简化代码,并提高程序的可读性。本文将从入门到精通,全面介绍filter()函数的用法和相关知识点。1.filter()函数的基本用法filter(......
  • 欧拉函数
    欧拉函数其实我接触挺久了,一开始就是为了做pta的题刷分才学的,,,后来发现,woc这玩意儿还挺有深度????这是我一开始的笔记,还挺潦草: 我自己也看了老半天才看明白我之前写的什么鬼玩意儿。。。。。。 重开。。。 欧拉函数(Euler'stotientfunction),即φ(n),表示的是小于等于n和n互质......
  • 【补充】函数和方法的区别
    【补充】函数和方法的区别在编程中,函数和方法是两个相关但又有区别的概念。【1】函数函数是一段可以重复使用的代码块,它接受输入参数并产生输出结果。函数通常独立于任何特定的对象或类,并可以在程序的不同位置被调用和执行。函数可以有返回值,也可以没有返回值。【2】方......
  • 剑指 Offer 30. 包含min函数的栈(简单)
    题目:classMinStack{public:stack<int>st1;//维护原栈stack<int>st2;//维护最小值的栈/**initializeyourdatastructurehere.*/MinStack(){}voidpush(intx){st1.push(x);......