如何在承诺中包含的量角器启动后函数中返回多个记者?

pj0*_*013 1 javascript promise protractor jasmine-reporters

我有以下记者

 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));
    });
}
Run Code Online (Sandbox Code Playgroud)

上述每个报告程序都有自己的启动后程序,一旦执行ptor.conf文件中的启动后程序,便有望执行。

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

如何同时返回两个报告?

ale*_*cxe 5

您需要Promise.all()(或者protractor.promise.all()如果您正在运行Webdriver Promise):

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]);
Run Code Online (Sandbox Code Playgroud)