我在学习node.js流时发现了这段代码:
var fs = require('fs');
var readableStream = fs.createReadStream('file.txt');
var data = '';
var chunk;
readableStream.on('readable', function() {
while ((chunk=readableStream.read()) != null) {
data += chunk;
}
});
readableStream.on('end', function() {
console.log(data)
});
在while条件中,有((chunk=readableStream.read()) != null)
。我理解JavaScript中的每个语句都返回一个值,因此,这段代码可以正常工作。我无法弄清楚的是如何在不使用条件内的赋值的情况下复制该代码。
答案 0 :(得分:0)
可以通过在分配后测试值来进行等效循环:
while (true) {
chunk = readableStream.read();
if (chunk == null) {
break;
}
data += chunk;
}
或者您可以在循环之前和循环内重复赋值:
chunk = readableStream.read();
while (chunk != null) {
data += chunk;
chunk = readableStream.read();
}