2015-04-01 66 views
0

我发现这段代码,同时了解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

的等效回路可以通过测试值分配后进行:

chunk = readableStream.read(); 
while (chunk != null) { 
    data += chunk; 
    chunk = readableStream.read(); 
} 

while (true) { 
    chunk = readableStream.read(); 
    if (chunk == null) { 
     break; 
    } 
    data += chunk; 
} 

,或者你可以重复分配循环之前和循环内