等待异步功能以用于摩卡赛跑者

时间:2019-03-12 11:03:33

标签: javascript node.js mocha eventemitter

我正在寻找如何在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()函数,当然没问题。

如何强制跑步者等待事件的异步功能?

0 个答案:

没有答案