我希望以任何快速的方式(希望我可以在许多/所有实例中使用它)来验证选择器是否返回一个promise而不是一个元素。
答案 0 :(得分:2)
黑客解决方案可能类似于:
var result = something.getSomething(someArgs);
if(result.then){
// it's a promise.
}else{
// the usual stuff.
}
正确的方式可能是使用instanceof
,我相信量角器承诺的类型为webdriver.promise.Promise
(想要对这一点进行一些确认),一个简单的检查方法可能是:
function isPromise(obj){
return obj instanceof webdriver.promise.Promise || webdriver.promise.isPromise(obj);
}
//usage
var result = something.getSomething(someArgs);
if(isPromise(result))){
// it's a promise.
}else{
// the usual stuff.
}
答案 1 :(得分:0)
如果您不确定某件事是否是承诺,最好的选择是使用promise.when()
将其变为承诺(如果它还不是承诺),这样您就可以安全地将结果视为承诺
但是量角器中的大多数东西似乎都返回了我所见过的承诺,所以在大多数情况下这应该是一个冗余的操作。