【发布时间】:2018-03-06 21:01:00
【问题描述】:
我正在写一些这样的量角器测试:
import { browser, element, by, ExpectedConditions } from 'protractor';
export class SomePage {
private elements: any = {};
navigateToUpdate(name: string) {
return browser.get(`/policies/${name}`)
.then(() => browser.waitForAngular())
.then(() => browser.wait(this.statusIsPresent))
.then(() => this.initElements());
}
private initElements(): Promise<void> {
// Do stuff here
return Promise.resolve();
}
private get statusIsPresent(): Function {
return ExpectedConditions.presenceOf(element(by.id('status')));
}
}
因为wait() navigateToUpdate() 返回Promise<Promise<void>>。我不明白为什么,我不明白这是否是一个潜在的问题,会产生我不明白的错误。
无论browser.wait() 返回什么,Promise.resolve().then(() =>browser.wait()).then(() => something()) 不应该返回任何something() 返回,而不是任何something() 返回的 Promise?
【问题讨论】:
-
then方法的类型不明确,可能 Typescript 无法正确推断结果类型。尝试将navigateToUpdate的返回类型显式注释为Promise<void>,它可能仍然可以正常编译。
标签: typescript promise protractor