/ / Има ли прост начин да се определи дали Протектор връща обещание? [дубликат] - javascript, режисьор

Има ли прост начин да се определи дали Протектор връща обещание? [дубликат] - javascript, режисьор

Надявам се, че всеки бърз начин (надявам се, че можем да използваме в много / всички случаи), за да проверим дали един селектор връща обещание, а не елемент.

Отговори:

2 за отговор № 1

Решението за хакване може да е нещо като:

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.
}

0 за отговор № 2

Вашият най-добър залог, ако не сте сигурни дали нещо е обещание или не, е да използвате promise.when() да го превърнете в обещание, ако не е вече едно, и по този начин можете да третирате резултата като обещание безопасно.

Но повечето неща в прослушвателя изглежда се връщат обещания, които съм виждал, така че в повечето случаи това трябва да е излишна операция.