如何 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]);
我有以下记者
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]);