【问题标题】:Why does Protractor sometimes returns a promise and sometimes returns a value?为什么 Protractor 有时会返回一个 promise,有时会返回一个值?
【发布时间】:2015-09-01 07:36:23
【问题描述】:

official documentation可以找到如下代码:

var history = element.all(by.repeater('result in memory'));
expect(history.count()).toEqual(2);

不过你也可以找examples using promises

element.all(by.repeater('app in userApps')).count().then(function(count) {
    console.log(count);
});

那么为什么 Protractor 有时会返回一个 promise,有时会返回一个值呢?

【问题讨论】:

    标签: javascript angularjs protractor


    【解决方案1】:

    history.count() 确实返回了一个承诺,但 Protractor 采用 Jasmine expect 来理解承诺。

    https://github.com/angular/protractor/blob/master/docs/control-flow.md

    【讨论】:

      【解决方案2】:

      它总是返回一个承诺,只是 expect 被修补以通过将它们添加到 control-flow 来处理它们,以便它们以正确的顺序执行和解决。

      【讨论】:

        【解决方案3】:

        量角器的人“修补”茉莉花以保证知道。那是, expect 语句进行鸭式打字——如果它是一个承诺,它会等待 让它解析并执行底层断言。如果有的话 其他类型,它像在任何其他茉莉花中一样执行断言 世界。

        source

        【讨论】:

          猜你喜欢
          • 2020-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-16
          • 1970-01-01
          • 2019-12-26
          • 2018-04-18
          • 2020-04-28
          相关资源
          最近更新 更多