【问题标题】:How the promise is getting reolved in Protractor for the filter function?Protractor 中过滤器功能的承诺是如何解决的?
【发布时间】:2020-03-05 13:00:00
【问题描述】:

我在使用过滤器功能的量角器中使用以下功能。这里让 requiredArtifacts 被声明,一旦过滤器承诺得到解决,它将成为过滤器函数的返回值。 这意味着当我运行这个函数时,let loc = 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;
         })
    }

【问题讨论】:

    标签: javascript node.js jasmine protractor


    【解决方案1】:

    如果你看到filterhere的文档,它清楚地提到它返回ElementArrayFinder

    filter 与阵列支持的filter 不同。该过滤器不适用于 Promise,而量角器过滤器方法可以返回布尔值或解析为布尔值的 Promise。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      相关资源
      最近更新 更多