Как обещание получает в Protractor функцию фильтра? - PullRequest
1 голос
/ 05 марта 2020

Я использую следующую функцию в транспортире, который использует функцию фильтра. Здесь let requiredArtifacts объявлено, и оно будет возвращаемым значением функции фильтра, когда обещание фильтра будет разрешено. Это означает, что когда я запускаю эту функцию, let lo c = requiredArtifacts.getLocation (); должен выдавать мне неопределенную ошибку, так как операция фильтра асинхронна и возвращает обещание. Но это довольно хорошо работает. Означает ли это, что функция фильтра не возвращает обещание, а действует синхронно. Пожалуйста, уточните, как я новичок в этой кодировке.

this.deleteRTI = function(rtiName, operationName){
        let str = rtiName +' [Rule Template Instance]'
        console.log(str)
        let requiredArtifacts  = this.listProjectsArtifacts.filter(function(element,index) {
            return element.getText().then(function(text){               
                return text === str;
            })
        }).first();
        let loc = requiredArtifacts.getLocation();
         browser.actions().mouseMove(loc).perform();
         browser.actions().click(protractor.Button.RIGHT).perform();
         this.rightClickOperationsOnArtifacts('Delete')
         this.confirmDeleteArtifacts.click()
         return this.deployToastMessage.getText().then(function(text){
             return text;
         })
    }

1 Ответ

0 голосов
/ 05 марта 2020

Если вы видите документацию filter здесь , в ней четко указано, что возвращается ElementArrayFinder.

Этот filter отличается от filter, который поддерживается на массивах. Этот фильтр не работает с обещаниями, в то время как метод фильтра транспортира может возвращать логическое значение или обещание, которое разрешается в логическое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...