我正在寻找如何在mocha赛跑者事件中等待异步功能执行的方式。 作为示例,我有一个事件的自定义摩卡记者:
function MyReporter(runner) {
Base.call(this, runner);
runner.on('suite end', function(suite) {
Testlogger.flush()
});
}
mocha.utils.inherits(MyReporter, mocha.reporters.spec);
Testlogger.flush()-是一个具有回调或承诺(带有异步逻辑的东西)的函数。就我而言,类似于回调:
fs.writeFile(where, what, (err) => {
if(err) {
callback("error")
} else {
callback("done")
}
});
或具有承诺回报的内容:
const test = promisify(fs.writeFile)
return test.call(null, where, what)
或者它可以使用本地JS Promise
所以,我的观点是,该功能应该以异步方式工作,这种“异步”的形式可能并不重要。我了解事件以同步的方式工作,我尝试了很多不同的选择,但都失败了。我也对摩卡中的神奇done()函数进行了修改,但没有找到可靠的示例。如果我使用fs.writeFileSync()函数,当然没问题。
如何强制跑步者等待事件的异步功能?