1

Я обновил приложение до версии protractor 5.0.0, и у меня возникла проблема с fulfill. Взгляните на следующий код:выполнить устаревшее - Обновление до транспортира 5.0.0

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 они имеют изменения селеном WebDriver, гляньте список изменений here. изменений селена говорит

Устаревшие promise.fulfilled (значение), используйте promise.Promise # решительность (значение)

И я не знаю, что происходит с этим. Как мне изменить свой код, чтобы он работал правильно с помощью protractor 5.0.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); 
      } 
     }) 
    }); 
}; 
Смежные вопросы