作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我目前正在使用网站“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/
我是一名优秀的程序员,十分优秀!