当前位置: 首页 > news >正文

杨行网站建设河南网站优化公司

杨行网站建设,河南网站优化公司,dedecms 网站地图 插件,破解wordpress邀请码function* function* 这种声明方式 (function关键字后跟一个星号)会定义一个生成器函数 (generator function),它返回一个 Generator 对象。 function * gen(){console.log("heloo generator")}如何调用呢?先看下里面的内容 返回…

function*

function* 这种声明方式 (function关键字后跟一个星号)会定义一个生成器函数 (generator function),它返回一个 Generator 对象。

     function * gen(){console.log("heloo generator")}

如何调用呢?先看下里面的内容
在这里插入图片描述
返回一个这个生成器的 迭代器 ( iterator )对象。

 iterator.next();

在这里插入图片描述

语法

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/function*
语法

function* name([param[, param[, … param]]]) { statements }

name
函数名

param
要传递给函数的一个参数的名称,一个函数最多可以有 255 个参数。

statements
普通 JS 语句。

描述
生成器函数在执行时能暂停,后面又能从暂停处继续执行。

调用一个生成器函数并不会马上执行它里面的语句,而是返回一个这个生成器的 迭代器 ( iterator )对象。当这个迭代器的 next() 方法被首次(后续)调用时,其内的语句会执行到第一个(后续)出现yield的位置为止,yield 后紧跟迭代器要返回的值。或者如果用的是 yield*(多了个星号),则表示将执行权移交给另一个生成器函数(当前生成器暂停执行)。

next()方法返回一个对象,这个对象包含两个属性:value 和 done,value 属性表示本次 yield 表达式的返回值,done 属性为布尔类型,表示生成器后续是否还有 yield 语句,即生成器函数是否已经执行完毕并返回。

调用 next()方法时,如果传入了参数,那么这个参数会传给上一条执行的 yield 语句左边的变量

next调用

        function * gen(){// console.log(111);yield '一只没有耳朵';// console.log(222);yield '一只没有尾部';// console.log(333);yield '真奇怪';// console.log(444);}let iterator = gen();console.log(iterator.next());console.log(iterator.next());console.log(iterator.next());console.log(iterator.next());

在这里插入图片描述

遍历

既然是迭代器,就可以采用for of遍历。

        function * gen(){yield '一只没有耳朵';yield '一只没有尾部';          yield '真奇怪';}let iterator=gen();//遍历for(let v of gen()){console.log(v);}

在这里插入图片描述

生成器接收参数

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>生成器函数参数</title>
</head>
<body><script>function * gen(arg){console.log(arg);let one = yield 111;console.log(one);let two = yield 222;console.log(two);let three = yield 333;console.log(three);}//执行获取迭代器对象let iterator = gen('AAA');console.log(iterator.next());//next方法可以传入实参console.log(iterator.next('BBB'));console.log(iterator.next('CCC'));console.log(iterator.next('DDD'));</script>
</body>
</html>

在这里插入图片描述

异步编程

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>生成器函数实例</title>
</head><body><script>// 异步编程  文件操作 网络操作(ajax, request) 数据库操作// 1s 后控制台输出 111  2s后输出 222  3s后输出 333 // 回调地狱// setTimeout(() => {//     console.log(111);//     setTimeout(() => {//         console.log(222);//         setTimeout(() => {//             console.log(333);//         }, 3000);//     }, 2000);// }, 1000);function one(){setTimeout(()=>{console.log(111);iterator.next();},1000)}function two(){setTimeout(()=>{console.log(222);iterator.next();},2000)}function three(){setTimeout(()=>{console.log(333);iterator.next();},3000)}function * gen(){yield one();yield two();yield three();}//调用生成器函数let iterator = gen();iterator.next();</script>
</body></html>

生成器函数实例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>生成器函数</title>
</head>
<body><script>//模拟获取  用户数据  订单数据  商品数据 function getUsers(){setTimeout(()=>{let data = '用户数据';console.log(data);//调用 next 方法, 并且将数据传入iterator.next(data);}, 1000);}function getOrders(){setTimeout(()=>{let data = '订单数据';console.log(data);iterator.next(data);}, 1000)}function getGoods(){setTimeout(()=>{let data = '商品数据';console.log(data);iterator.next(data);}, 1000)}function * gen(){let users = yield getUsers();let orders = yield getOrders();let goods = yield getGoods();}//调用生成器函数let iterator = gen();iterator.next();</script>
</body>
</html>

在这里插入图片描述

http://www.zhongyajixie.com/news/18448.html

相关文章:

  • logo智能设计一键生成器优化防控举措
  • 三网一体网站建设如何进行网络推广和宣传
  • 建设一个行业性的网站价格营销策划方案1000例
  • wordpress 支持magnet深圳做seo有哪些公司
  • 政府网站制作站长素材网站
  • 建设网站的步骤abc2022年百度seo
  • 织梦网站安装教程视频教程网站seo诊断工具
  • 厚街找人做网站seo排名工具
  • 公司网站制作门槛企业查询免费
  • 花生壳做网站百度网盘客服
  • 建设网站怎么报价优化器
  • 网站的透明图片怎么做求几个好看的关键词
  • 大众服务器网站短视频培训课程
  • 运营是做什么的工作seo关键词分类
  • 做动漫的网站故事式软文范例100字
  • 个人持有域名可以做公司网站吗人员优化是什么意思
  • 莱州人社局网站seo关键词优化排名
  • 网站建设文案如何提高网站排名的方法
  • 六安论坛网站seo岗位是什么意思
  • 帝国cms 做网站地图最近一周新闻大事
  • 西宁seo网站建设培训心得体会300字
  • 做问卷调查用哪个网站好nba最新排行榜
  • 网站管理和维护河北百度seo
  • 做封面网站2022年新闻摘抄简短
  • 电子商务网站建设方案的总结sem扫描电镜
  • 门户类网站有哪些武汉seo网站优化排名
  • 深圳 网站设计网络seo软件
  • 网站分站怎么做排名前十的大学
  • 汉川市城乡建设局网站湖南搜索引擎推广平台
  • 企业网站建立整站优化加盟