2017-02-21 7 views
1

У меня есть этот метод:Конвертировать WebDriver обещание к собственному обещанию?

isOnPage(): Promise<boolean> { 
    return this.subtitle.isPresent(); 
} 

Машинопись компилятор выдаст сообщение об ошибке:

Type 'webdriver.promise.Promise<boolean>' is not assignable to type 'Promise<boolean>' 

Есть ли способ, чтобы преобразовать WebDriver обещание нативного обещание?

Будет ли это работать?

isOnPage(): Promise<boolean> { 
    return new Promise(() => { 
    return this.subtitle.isPresent(); 
    }); 
} 
+2

'webdriver.promise.Promise' другой тип, чем нативный' Promise'. – AntonB

+0

Зачем вам нужно конвертировать в родное обещание? – Gunderson

+0

Команда запуталась, когда в проекте реализовано множество обещаний. –

ответ

2

Вы можете пропустить объявление типа возврата, это случай. Это еще покажет вам правильные предложения для возвращаемого значения

isOnPage() { 
    return this.subtitle.isPresent(); 
} 
+0

Это лучшая практика? Похоже на приличную идею. –

+3

Не большой поклонник этого решения. Независимо от объявленного типа возврата, он все равно будет иметь тот же тип вывода. Теоретически вы можете столкнуться с проблемами, если бы ожидали, что они будут вести себя как ES6 'Promise', поскольку у них разные контракты. –

+1

Я также считаю, что лучше явно указать возвращаемый тип. Я был бы благодарен за пример кода, который работает! – Xotabu4

0
import { promise } from 'selenium-webdriver'; 

... 

isOnPage(): promise.Promise<boolean> { 
    return this.subtitle.isPresent(); 
} 
Смежные вопросы