Future.wait () не может ждать без оптоволокна (при ожидании другого будущего в Meteor.method)

ВMeteorЯЯ пишу метод, который должен проверить определенный путьПодкаталоги для новых файлов. Сначала я хотел бы просто перечислить подкаталоги вMeteor после чего яchild_process.exec простой bash-скрипт, в котором перечислены файлы, добавленные с момента его последнего запуска.

у меня возникли некоторые проблемы с получением обнаружения каталогов асинхронным (Error: Can't wait without a fiber). Я'мы написали синхронную версию, ноfs.readdir а такжеfs.stat вместо их синхронных альтернатив позволяет мне ловить ошибки.

Вот's код:

function listDirs(dir, isDir){

    var future1 = new Future();fs.readdir(dir, function(err, files){

            if (err)
                throw new Meteor.error(500, "Error listing files", err);

            var dirs = _.map(files, function(file){

                var future2 = new Future();
                var resolve2 = future2.resolver();

                fs.stat(dir+file, function(err, stats){

                    if (err)
                        throw new Meteor.error(500, "Error statting files", err);

                    if (stats.isDirectory() == isDir && file.charAt(0) !== '.')
                        resolve2(err, file);

                });

                return future2;

            });

            Future.wait(dirs);

            //var result = _.invoke(dirs, 'get');

            future1['return'](_.compact(dirs));
        });

        return future1.wait();
    }

ОшибкаError: Can't wait without a fiber имеет отношение кfuture2, Когда я закомментируюFuture.wait(dirs) сервер небольше не терпит крах, но этоо том, насколько я пытался решить это. : /

Другая_.map Функция, которую я использую в другой части метода, прекрасно работает с фьючерсами. (смотрите такжеhttps://gist.github.com/possibilities/3443021 где я нашел свое вдохновение)

Ответы на вопрос(1)

Ваш ответ на вопрос