1

我有以下记者

 afterLaunch: function (exitCode) {

    return new Promise(function (resolve) {
        reporter1.afterLaunch(resolve.bind(this, exitCode));
    });

    return new Promise(function (resolve) {
        reporter2.afterLaunch(resolve.bind(this, exitCode));
    });
}

上述每个报告器都有自己的 afterlaunch,一旦 ptor.conf 文件中的 afterlaunch 被执行,它们就会被执行。

但显然由于return new Promise,第一个报告本身从那里返回,并且执行停止在那里。

怎么可能同时返回两个报告?

4

1 回答 1

5

您需要Promise.all()(或者protractor.promise.all()如果您正在操作 webdriver 承诺):

var promise1 = new Promise(function (resolve) {
    reporter1.afterLaunch(resolve.bind(this, exitCode));
});

var promise2 = new Promise(function (resolve) {
    reporter2.afterLaunch(resolve.bind(this, exitCode));
});

return Promise.all([promise1, promise2]);
于 2016-12-16T16:44:09.377 回答