Node.js 我怎么能发誓等60多岁的时候再回电话呢

Node.js 我怎么能发誓等60多岁的时候再回电话呢,node.js,vows,Node.js,Vows,我已经编写了一些连接到FTP服务器的代码,并列出了一个很长的目录。可能需要40多秒才能得到响应 我已经编写了一些代码来开始测试,但是我遇到了错误>>回调未被触发 有没有一种方法可以指示誓言或节点只是稍微冷静一下,然后等待回调触发,比如说,等待一段可配置的时间 这是我的誓言代码: vows.description('FTP Downloader Suite').addBatch({ “FTP下载程序”:{ 主题:函数(){ var promise=new(events.EventEmitter)

我已经编写了一些连接到FTP服务器的代码,并列出了一个很长的目录。可能需要40多秒才能得到响应

我已经编写了一些代码来开始测试,但是我遇到了错误>>回调未被触发

有没有一种方法可以指示誓言或节点只是稍微冷静一下,然后等待回调触发,比如说,等待一段可配置的时间

这是我的誓言代码: vows.description('FTP Downloader Suite').addBatch({ “FTP下载程序”:{ 主题:函数(){ var promise=new(events.EventEmitter)

var lastMomentDownloaded=moment();
下载的最后时刻。减去('minute',1);
ftpDownloader.getNewPathsToDownload(配置、lastMomentDownloaded、函数(err、res){
if(err){promise.emit('error',err,res)}
否则{promise.emit('success',err,res)}
});
回报承诺;
},
“可访问”:函数(err,stat){
assert.isNull(err);//我们没有错误
assert.isArray(stat);//我们有一个结果
},
“不为空”:函数(err,stat){
assert.isNotZero(stat.length);
},
“小于100个路径”:函数(err,stat){
断言isTrue(统计长度<100);
},
“包含与配置匹配的路径”:函数(err,stat){
_.每个(状态、功能(值、键、列表){
console.log(值);
});
}
}
}).出口(模块);

谢谢

誓言混淆了问题的根源,即抛出了一个错误。当我切换到nodeunit时,问题显而易见。也许有一种方法可以通过誓言来改进错误记录,但我已经完成了

            var lastMomentDownloaded = moment();
            lastMomentDownloaded.subtract('minute', 1);
            ftpDownloader.getNewPathsToDownload(config, lastMomentDownloaded, function(err, res) {
                if (err) { promise.emit('error',   err, res) }
                else   {   promise.emit('success', err, res) }
            });
            return promise;
        },
        'can be accessed': function(err, stat) {
            assert.isNull(err); // we have no error
            assert.isArray(stat); // we have a result
        },
        'is not empty': function(err, stat) {
            assert.isNotZero(stat.length);
        },
        'is shorter than 100 paths': function(err, stat) {
            assert.isTrue(stat.length < 100);
        },
        'contains paths matching the config': function(err, stat) {
            _.each(stat, function(value, key, list) {
                console.log(value);
            });
        }
       }
    }).export(module);