Загрузка файла с помощью nodejs koa co-busboy

Я использую co-busyboy для анализа файловых полей при загрузке файлов с использованием KOA. Официальный пример выглядит так:

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

По некоторым причинам я хочу сохранить все потоки "частей" в массив и выполнять фактическую запись файлов при получении всех потоков файлов. то есть:

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?

0 ответов

Другие вопросы по тегам