相关疑难解决方法(0)

Future.wait()不能没有光纤等待(等待Meteor.method中的另一个未来)

Meteor,我正在编写一个方法,必须检查某个路径的子目录的新文件.我首先想列出其中的子目录,Meteor之后是child_process.exec一个简单的bash脚本,列出自上次执行以来添加的文件.

我在将目录发现设置为async(Error: Can't wait without a fiber)时遇到了一些问题.我已经编写了一个同步版本但是同时使用它们fs.readdirfs.stat不是它们的同步替代版本允许我捕获错误.

这是代码:

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); …
Run Code Online (Sandbox Code Playgroud)

future meteor

7
推荐指数
1
解决办法
3639
查看次数

标签 统计

future ×1

meteor ×1