已弃用 - 更新到量角器5.0.0

时间:2017-01-31 14:39:31

标签: javascript angularjs selenium selenium-webdriver protractor

我已将我的应用更新为量角器版本5.0.0,我遇到了fulfill的问题。看看下面的代码:

browser.s2.util.unzip = function(report){
        return report.then(function(report){
            var defer = protractor.promise.defer();
            try {
                var zip = new AdmZip(report);
                var zipEntries = zip.getEntries(); 
                zipEntries.forEach(function(zipEntry) {
                    zipEntry.d =  zip.readFile(zipEntry);
                });
                defer.fulfill(zipEntries);
            } catch (err){
                defer.reject(err);
            }
            return defer;
        });
    };

正如我在Protractor changelog中看到的那样,他们已经更改了 selenium-webdriver ,请查看更改日志here。 Selenium的更新日志说

  

不推荐使用promise.fulfilled(value),使用promise.Promise #resolution(value)

我不知道这是怎么回事。我应该如何更改代码以使其与量角器5.0.0一起正常工作。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您现在可以使用native promises(我希望它是正确的链接)。像这样:

browser.s2.util.unzip = function(report){
    return report.then(function(report){
        return new Promise(function(resolve, reject){
            try{
                // reading archives
                var zip = new AdmZip(report);
                var zipEntries = zip.getEntries(); // an array of ZipEntry records
                zipEntries.forEach(function(zipEntry) {
                    zipEntry.d =  zip.readFile(zipEntry);
                });
                resolve(zipEntries);
            }catch(err){
                reject(err);
            }
        })
    });
};