gpt4 book ai didi

javascript - JavaScript 是否在 yield 语句之后执行代码?

转载 作者:行者123 更新时间:2023-11-30 21:20:26 25 4
gpt4 key购买 nike

我正在查看一些 Github 代码,它看起来像 yield 语句后有表达式。

链接是here ,我正在查看的代码是这样的:

if (curbyte === LF && lastbyte !== CR || curbyte === CR && curpos < bytesRead - 1) {
yield _concat(lineBuffer, readChunk.slice(startpos, curpos));

lineBuffer = undefined;
startpos = curpos + 1;

if (curbyte === CR && readChunk[curpos + 1] === LF) {
startpos++;
curpos++;
}
} else if (curbyte === CR && curpos >= bytesRead - 1) {
lastbyte = curbyte;
}

我本以为该行之后的所有内容:

yield _concat(lineBuffer, readChunk.slice(startpos, curpos));

并且在同一个 if block 中永远不会到达。我说的不对吗?

最佳答案

Does JavaScript execute code after a yield statement?

是的,但不是马上。当生成器产生时,它会暂停,直到迭代器对其调用 next()。然后生成器恢复执行,直到它再次产生。

这里有解释:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Iterators_and_Generators

关于javascript - JavaScript 是否在 yield 语句之后执行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45240857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com