Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript是否在yield语句之后执行代码?_Javascript_Generator - Fatal编程技术网

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

JavaScript是否在yield语句之后执行代码?,javascript,generator,Javascript,Generator,我在看一些Github代码,它看起来像是在yield语句后面有表达式 链接是,我看到的代码是: if (curbyte === LF && lastbyte !== CR || curbyte === CR && curpos < bytesRead - 1) { yield _concat(lineBuffer, readChunk.slice(startpos, curpos)); lineBuffer = undefined;

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

链接是,我看到的代码是:

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;
}
在同一
内,如果
块永远无法到达。我这样说不对吗

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

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

这里解释如下:

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