收藏此站 联系我们 网站
当前位置:首页» 行业新闻 » 【建站服务】陇南网页设计-高端网站设计公司-域名申请

【建站服务】陇南网页设计-高端网站设计公司-域名申请

作者: 风兰 . 阅读量: 6 . 发表时间:2022-09-21 03:24:01

网站建设

上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


陇南网页设计-高端网站设计公司

网站建设.png

next传参var sendp2 = sendParameter();sendp2.next(10);// start// {value: "2", done: false}sendp2.next(20);// one:20// {value: "3", done: false}sendp2.next(30);// two:30// total:50// {value: undefined, done: true}

除了使用 next ,还可以使用 for... of 循环遍历 Generator 函数生产的 Iterator 对象。

return 方法

return 方法返回给定值,并结束遍历 Generator 函数。

return 方法提供参数时,返回该参数;不提供参数时,返回 undefined 。

function* foo(){    yield 1;    yield 2;    yield 3;}var f = foo();f.next();// {value: 1, done: false}f.return("foo");// {value: "foo", done: true}f.next();// {value: undefined, done: true}throw 方法throw 方法可以再 Generator 函数体外面抛出异常,再函数体内部捕获。var g = function* () {  try {    yield;  } catch (e) {    console.log('catch inner', e);  }}; var i = g();i.next(); try {  i.throw('a');  i.throw('b');} catch (e) {  console.log('catch outside', e);}// catch inner a// catch outside b

遍历器对象抛出了两个错误,第一个被 Generator 函数内部捕获,第二个因为函数体内部的catch 函数已经执行过了,不会再捕获这个错误,所以这个错误就抛出 Generator 函数体,被函数体外的 catch 捕获。

yield* 表达式

yield* 表达式表示 yield 返回一个遍历器对象,用于在 Generator 函数内部,调用另一个 Generator 函数。

function* callee() {    console.log('callee: ' + (yield));}function* caller() {
atch outside b

遍历器对象抛出了两个错误,第一个被 Generator 函数内部捕获,第二个因为函数体内部的catch 函数已经执行过了,不会再捕获这个错误,所以这个错误就抛出 Generator 函数体,被函数体外的 catch 捕获。

yield* 表达式

yield* 表达式表示 yield 返回一个遍历器对象,用于在 Generator 函数内部,调用另一个 Generator 函数。

function* callee() {    console.log('callee: ' + (yield));}function* caller() {    while (true) {        yield* callee();    }}const callerObj = caller();callerObj.next();// {value: undefined, done: false}callerObj.next("a");// callee: a// {value: undefined, done: false}callerObj.next("b");// callee: b// {value: undefined, done: false} // 等同于function* caller() {    while (true) {        for (var value of callee) {          yield value;        }    }}

使用场景

实现 Iterator

为不具备 Iterator 接口的对象提供遍历方法。

function* objectEntries(obj) {    const propKeys = Reflect.ownKeys(obj);    for (const propKey of propKeys) {        yield [propKey, obj[propKey]];

// start

// {value: "2", done: false}

sendp1.next();

// one:undefined

// {value: "3", done: false}

sendp1.next();

// two:undefined

// total:NaN

// {value: undefined, done: true}

next传参

var sendp2 = sendParameter();

sendp2.next(10);

// start

// {value: "2", done: false}

sendp2.next(20);

// one:20

// {value: "3", done: false}

sendp2.next(30);

// two:30

// total:50

// {value: undefined, done: true}

除了使用 next ,还可以使用 for... of 循环遍历 Generator 函数生产的 Iterator 对象。


return 方法


return 方法返回给定值,并结束遍历 Generator 函数。


return 方法提供参数时,返回该参数;不提供参数时,返回 undefined 。


function* foo(){

    yield 1;

    yield 2;

    yield 3;

}

var f = foo();

f.next();

// {value: 1, done: false}

f.return("foo");

// {value: "foo", done: true}

f.next();

// {value: undefined, done: true}

throw 方法

throw 方法可以再 Generator 函数体外面抛出异常,再函数体内部捕获。

var g = function* () {

  try {

    yield;

  } catch (e) {

    console.log('catch inner', e);

  }

};

 

var i = g();

i.next();

 

try {

  i.throw('a');

  i.throw('b');

} catch (e) {

  console.log('catch outside', e);

}

// catch inner a

// catch outside b

遍历器对象抛出了两个错误,第一个被 Generator 函数内部捕获,第二个因为函数体内部的catch 函数已经执行过了,不会再捕获这个错误,所以这个错误就抛出 Generator 函数体,被函数体外的 catch 捕获。


yield* 表达式


yield* 表达式表示 yield 返回一个遍历器对象,用于在 Generator 函数内部,调用另一个 Generator 函数。


function* callee() {

    console.log('callee: ' + (yield));

}

function* caller() {

    while (true) {

        yield* callee();

    }

}

const callerObj = caller();

callerObj.next();

// {value: undefined, done: false}

callerObj.next("a");

// callee: a

// {value: undefined, done: false}

callerObj.next("b");

// callee: b

// {value: undefined, done: false}

 

// 等同于

function* caller() {

    while (true) {

        for (var value of callee) {

          yield value;

        }

    }

}

使用场景

实现 Iterator


为不具备 Iterator 接口的对象提供遍历方法。


function* objectEntries(obj) {

    const propKeys = Reflect.ownKeys(obj);

    for (const propKey of propKeys) {

        yield [propKey, obj[propKey]];

    }

}

 

const jane = { first: 'Jane', last: 'Doe' };

for (const [key,value] of objectEntries(jane)) {

    console.log(`${key}: ${value}`);

}

// first: Jane

// last: Doe

Reflect.ownKeys() 返回对象所有的属性,不管属性是否可枚举,包括 Symbol。


jane 原生是不具备 Iterator 接口无法通过 for... of遍历。这边用

陇南网页设计-高端网站设计公司


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站

全国服务热线
18114747181
二维码
手机端二维码
上往建站
地址:全国各地都有驻点商务 |  网站建设上往建站
在线咨询QQ:1120768800
 
QQ在线咨询
售前咨询热线
18114747181
营销顾问
营销顾问
售后服务热线
400-000-1116
售后服务
售后服务