function* genarator(){yield i;yield i*2}

前提:

yield

yield 关键字用于暂停和恢复生成器函数

yield 关键字使生成器函数执行暂停,yield 关键字后面的表达式的值返回给生成器的调用者。它可以被认为是一个基于生成器的版本的 return 关键字。

yield 关键字实际返回一个 IteratorResult 对象,它有两个属性,value 和 done。value 属性是对 yield 表达式求值的结果,而 done 是 false,表示生成器函数尚未完全完成。

一旦遇到 yield 表达式,生成器的代码将被暂停运行,直到生成器的 next() 方法被调用。每次调用生成器的 next() 方法时,生成器都会恢复执行,直到达到以下某个值:

  • yield,导致生成器再次暂停并返回生成器的新值。下一次调用 next() 时,在 yield 之后紧接着的语句继续执行。

  • throw 用于从生成器中抛出异常。这让生成器完全停止执行,并在调用者中继续执行,正如通常情况下抛出异常一样。

代码源码:

        function* genarator(i) {
            yield i;
            yield i * 2;
        }
        const gen = genarator(10)
        console.log(gen.next().value);
        console.log(gen.next().value);

展示结果:

成果分析:

function* genarator(){yield i;yield i*2}_第1张图片

你可能感兴趣的:(javascript,js,es6)