如何 return protractor afterlaunch 函数中包含承诺的多个记者?

how to return multiple reporters in protractor afterlaunch function that are wrapped up in promises?

我有以下记者

 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));
    });
}

上述每个记者都有自己的后启动,一旦执行 ptor.conf 文件中的后启动,预计就会执行。

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

怎么可能同时return两个报告?

您需要 Promise.all()(或者 protractor.promise.all(),如果您使用的是 webdriver promises):

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]);