使用KOA上传文件时,我使用co-busyboy解析文件字段。官方的例子是这样的:
var parse = require('co-busboy')
var parts = parse(this);
var part;
while (part = yield parts) {
if(!part.length) //it is a stream
part.pipe(fs.createWriteStream('some file.txt'));
}
由于某些原因,我想将所有“部分”流保存到一个数组中,并在获取所有文件流时执行实际的文件写入。IE:
var parse = require('co-busboy');
var parts = parse(this);
var part;
var partArrays = [];
var cnt = 0;
while(part = yield parts){
partArray[cnt++] = part;
}
//after some processing, I perform the writing
for(file in partArray){
file.pipe(fs.createWriteStream('some file.txt');
}
问题是while循环不会继续。似乎如果我不调用 part.pipe,循环将停止。
那么我怎样才能让while循环继续呢?