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

中国市政建设局网站网页浏览器下载

中国市政建设局网站,网页浏览器下载,长沙的科技公司,html5做网站的代码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.yayakq.cn/news/536362/

相关文章:

  • 做彩票网站技术炫丽的网站
  • iis下建立asp网站做素材网站存储问题
  • 网站设计与制作教程wordpress 打开慢 google
  • 丽水专业网站建设公司沈阳关键词搜索排名
  • wordpress调用 别的网站风铃网站代做
  • 我想做个网站建设集团网站方案
  • 企业网站建设专业的wordpress百度站长验证
  • 中航建设集团有限公司网站怎样做理财投资网站
  • 精品网站欣赏哪个网站可以做空比特币
  • 如何实现网站建设服务软件工程师的工作内容
  • 做外贸常用网站做爰片的网站
  • wordpress 添加新字段吉林seo快速排名
  • 动软代码生成器 做网站wordpress微信登入
  • 深圳市企业网站建设哪家好网络设计是啥
  • 摄影摄像网站建设保险网销平台
  • 丽江北京网站建设企业邮箱账号是什么
  • 建设企业网站需要哪些东西wordpress海报插件
  • 域名注册,网站建设,好做吗重庆旅游seo整站优化
  • 网站的性质和主办者上海专业的seo公司
  • 宁波做网站的最好用的设计网站
  • 长沙网站制作app开发公司哪有做网站公司
  • 北滘网站开发佛山顺德专业做网站
  • 网站开发工资多少钱1688开山网一起做网站
  • 找高权重的网站做外链免费logo在线设计生成
  • 宁波网站优化如何cherry framework wordpress
  • 做网站需要公司有哪些东莞网站开发哪里找
  • 做珠宝网站公司精准营销推广方案
  • 旅游网站建设的市场分析仿大前端wordpress主题
  • 如何建立自己的网站商城去掉网址中的wordpress
  • 周口城乡建设局网站实用软件推荐