file upload与nodejs koa co-busboy

使用KOA上传文件时,我使用co-busyboy来parsing文件字段。 官方示例如下所示:

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')); } 

由于某些原因,我想将所有“部分”stream保存到一个数组中,并在获取所有文件stream时执行写入的实际文件。 即:

 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循环继续?