es6 yield用法


2023年12月19日发(作者:atlas是什么意思)

es6 yield用法

ES6中新增了yield关键字,它可以将函数执行暂时挂起,同时将函数执行的控制权交给调用者,直到被再次调用时继续执行。

yield的基本语法如下:

function* foo() {

yield 1;

yield 2;

yield 3;

}

调用foo()并不会执行函数体,而是返回一个generator对象。可以通过next()方法来依次执行yield后面的表达式。

let generator = foo();

(()); // {done: false, value: 1}

(()); // {done: false, value: 2}

(()); // {done: false, value: 3}

(()); // {done: true, value:

undefined}

其中,done属性表示是否执行完毕,value属性表示yield后面的表达式的值。

除此之外,yield还可以在函数内部进行双向传值。generator对象的next()方法可以接受一个参数,将这个参数作为yield表达式的返回值。yield表达式的值可以通过next()方法的返回值获取。

- 1 -

function* bar() {

let x = yield 'foo';

(x);

let y = yield 'bar';

(y);

}

let generator = bar();

(()); // {done: false, value:

'foo'}

(('hello')); // hello {done:

false, value: 'bar'}

(('world')); // world {done:

true, value: undefined}

在此例中,第一个next()方法并没有传入参数,所以第一个yield表达式的返回值为'foo'。第二个next()方法传入了'hello'作为参数,此时x的值为'hello',并输出'hello'。依次类推,第三个next()方法传入了'world'作为参数,此时y的值为'world',并输出'world'。最终执行完毕,done为true,value为undefined。

yield的使用场景不止于此,它可以用于将一个耗时的操作分割成多个步骤进行处理,也可以用于实现异步编程。在实际开发中,可以根据具体情况灵活运用。

- 2 -


本文发布于:2024-09-23 18:24:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/fanyi/13691.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:执行   函数   参数   方法   进行
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议