js 生成器返回值问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/mynewdays/article/details/93847518
 function* cars(action) {
        const imposter = yield('hello ' + action);
        yield imposter;
    }
    const c1=cars();
    const res1=c1.next();
    console.log(res1);

    const res2=c1.next('本田');
    console.log(res2);

第一次执行 next 方法后,会执行第一个生成器

const imposter = yield('hello ' + action);

yield 的返回值时什么?正常情况下是 undefiend,而 参数 action 有没有传入实参,所以输出结果

但是当第二次调用 next 方法时,如果传入参数,则此参数会成为上面第一次调用 yield 方法的返回值,所以当执行第二个 yield 时,变量 inposter 的值就是传入的参数

如果希望第一次调用 yield 就有值,需要在创建生成器迭代器时传入参数

const c1=cars('丰田');

猜你喜欢

转载自blog.csdn.net/mynewdays/article/details/93847518