gpt4 book ai didi

javascript - 这个While循环如何结束? - 节点代码

转载 作者:行者123 更新时间:2023-11-28 04:47:19 26 4
gpt4 key购买 nike

您好,我目前正在使用网站“Codeschool.com”,我认为教师代码在其 Node/Javascript 代码中存在无限循环,但我不确定。

代码如下:

http.createServer(function(request, response) {
response.writeHead(200);
request.on('readable', function () {
var chunk = null;
while( null !==(chunk = request.read())) {
response.write(chunk);
}
});
request.on('end', function() {
response.end();
});
}).listen(8080)

导师说这段代码和使用 request.pipe(response); 类似

我理解这个概念,但是让我陷入循环(没有双关语)的是这个 while 循环,它是如何结束的?

最佳答案

request.read() 每次调用时都会返回可用数据的切片,直到没有更多数据可返回,在这种情况下它返回 null.

此时,chunk 也等于 null,并且由于赋值是返回指定值的表达式,因此条件为 false,因此 while 循环结束:

while ( null !== (chunk = null) ) { ... }

关于javascript - 这个While循环如何结束? - 节点代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43243590/

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