承诺在Protractor中进行回调排序

Promises callbacks ordering in Protractor

本文关键字:回调 排序 Protractor 承诺      更新时间:2023-09-26

在以下代码中,为什么promise resolved显示在promise being resolved之前?

    var p = protractor.promise.defer();
    element(by.css("input.m-call-to-action")).click().then(function() {
        console.log('promise being resolved');
        p.fulfill(true);
    });
    browser.wait(function() {
        console.log('p', p);
        return p;
    }, 5000);
    console.log('promise resolved', p);

这基本上就是控制流文档页面所描述的:

WebDriverJS(以及Protractor)API是完全异步的。全部的函数返回承诺。

Protractor维护一个控制流队列,其中click()承诺在开始,browser.wait()在结束。当记录promise resolved时,队列中的任何promise都不会得到解析。