es6的generator
创始人
2025-05-29 03:39:00
0

一.generator函数的大致介绍

generator函数是es6引入的,主要用于异步编程
generator最大特点是交出函数的执行权(即暂停执行,通过yield实现该功能)

二.与普通函数写法的不同:

1. 函数名之前有个星号,以示区别

它不同于普通函数,是可以暂时执行的

2.generator函数体内部使用yield语句 

yield语句只能在generator语句中使用,普通函数不行。现在比较流行数据驱动视图,yield语句可以定义不同的内部数据。
本质上,整个generator函数就是一个封装的异步任务。yield命令是异步不同阶段的分界线,所以说,有时也会把yield当做return。当然了,yield跟return有本质的不同。

示例1:.next()的使用

普通函数是通过调用函数的形式,但generator函数要让它动起来,需要用`.next()`方法,我们可以理解为是一个“启动方法”,作用是分阶段的执行generator函数。

每次调用.next()方法,会返回一个对象,表示当前阶段的信息,value属性,done属性:true表示函数已经执行完了,false表示函数还没执行完。

 示例2:迭代器对象

每当你调用了一个迭代器nebula的.next()方法,generator函数内部的指针,就是从上一次停下的地方继续运行,直到遇到下一个yield语句。每个迭代器之间是相互独立的,作用域独立

那为什么说是迭代器对象呢?

因为他得把里面的yield语句都走一遍,yield就像录音机上的暂停键,next就像录音机上的继续键。

示例3:.next()方法接受参数

传入的参数,其实是把上一个yield语句的返回值给覆盖掉。所以,第一个.next()方法其实是启动器,在它之前没有yield语句,因此给第一个.next()方法传参数是没有意义的。 

以下的例子最能体现generator函数用途的例子。

就是通过.next()方法,分阶段的注入数据,让函数分阶段的给出不同的返回值

示例4:generator函数支持for of 循环

用来迭代generator函数在执行时,生成的那个迭代对象。

 

相关内容

热门资讯

一年级春游日记 一年级春游日记一年级春游日记1  今天是春游,我作天就去买许多零食和矿泉水,打算在春游的时候干掉,我...
课外读书笔记摘抄 课外读书笔记摘抄(精选12篇)  导语:舍弃就是这样,它也许出于无奈,可在无奈之后是另一份希望,它也...
蚂蚁观察日记 【热门】蚂蚁观察日记4篇蚂蚁观察日记 篇1  我家有一个后院,我经常到后院去观察那些鹭绿上得小精灵—...
ImageView(图像视图) 本节介绍的UI基础控件是:ImageView(图像视图),就是用来显示图像的一个View或者说控件!...
关于接口测试——自动化框架的设... 一、自动化测试框架 在大部分测试人员眼中只要沾上“框架”,就感觉非常神秘,...
【2023.3.8】数据结构复... 【2023.3.8】数据结构复习笔记 文章目录【2023.3.8】数据结构复习笔记序言一、绪论二、线...
数学周记 【精华】数学周记范文(通用20篇)  不经意间,一个星期已经结束了,想必有很多难忘的瞬间吧,是时候仔...
男生贾里全传读书笔记 男生贾里全传读书笔记(通用24篇)  当品读完一部作品后,相信大家一定领会了不少东西,不能光会读哦,...
1.计算机网络和因特网 1.因特网的描述1.1 具体构成描述根据底层实现(硬件软件)端系统(主机...
使用YOLO部署哨岗相机 流程 一.模型选取 将YOLO和Faster RCNN进行搭配,通过多次实验ÿ...
大蒜观察日记 大蒜观察日记3篇  【导语】大蒜虽然是一种很不起眼的植物,但是它的生命力很强,无论在任何的环境下都可...
四年级观察植物的日记 四年级观察植物的日记范文  观察植物的日记需要怎么写呢?同学们是否有观察过植物的生长过程呢?不妨写下...
同一片天空共眠,同一个梦想奋斗... 同一片天空共眠,同一个梦想奋斗《大抠车始歌》(1) Eng...
Vue 3.0 Data选项 #概览 非兼容:data 组件选项声明不再接收纯 JavaScript object...
Java中原子操作的实现原理 Java中原子操作的实现原理1. 什么是原子操作2. 处理器如何是实现操作的原子性2.1 使用总线锁...
春节的街头小学日记 春节的街头小学日记  今天是大年初一,天气晴朗,妈妈带着我一早来到了兴宁路。  街上可热闹了,车水马...
通用实习日记 通用实习日记集合10篇通用实习日记 篇1  4 月18 日  今天是为期三周实习的第一天,心情有点紧...
【JUC进阶】如何合理设置线程... 文章目录1. 前言2. CPU 密集型3. IO密集型4. 实际情况 1. 前言 线程池ÿ...
JavaScript 学习笔记 0、前端三要素 HTML(结构):超文本标记语言ÿ...
《老山界》老师笔记 《老山界》老师笔记  当阅读完一本名著后,大家心中一定有不少感悟,记录下来很重要哦,一起来写一篇读书...