1

분도기 버전 5.0.0으로 내 앱을 업데이트했으며 fulfill과 관련된 문제가 있습니다. 나는 그들이 셀레늄 webdriver을 변경할 수있는 Protractor changelog에서 보았 듯이,지원 중단됨 - 분도기 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; 
     }); 
    }; 

A는 변경 로그 here 봐 걸릴 : A는 아래의 코드를 살펴보십시오. 셀레늄의 변경 로그는

추천하지 않습니다 promise.fulfilled (값), promise.Promise 번호의 해결 (값)

를 사용하고 난이와 무슨 일이 일어나고 있는지 모른다 말한다. 각도기 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); 
      } 
     }) 
    }); 
}; 
관련 문제