在下面的代码中,为什么promiseresolved
显示在promisebeingresolved
之前?
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);
最佳答案
这基本上就是Control Flow文档页面描述:
WebDriverJS (and thus, Protractor) APIs are entirely asynchronous. All functions return promises.
Protractor 维护一个控制流队列,其中 click()
Promise 位于开头,browser.wait()
位于结尾。当记录 promise returned
时,队列中的任何 Promise 都不会被解析。
关于javascript - Protractor 中的 promise 回调排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813517/