我使用异步等待正确的方式吗?在TypeScript

时间:2019-03-01 16:39:32

标签: typescript async-await protractor

我不确定我是否在TypeScript和Protractor代码中以正确的方式使用async / await。如果您看到以下代码,那么规范会说await并调用page对象,而该页面对象又是async / await。页面对象调用另一个方法,该方法再次是异步/等待。这是正确的实现吗?有没有最佳做法?我觉得我到处都使用async / await。

规范:

await login.loginTomySiteTools();

页面对象:

async loginTomySiteTools(): Promise<void> {
    await this.helper.enterText(this.email, this.mySuperApp.userID);
    await this.helper.click(this.btnNext);
}

助手:

async enterText(element: WebElement, textToEnter: string): Promise<void> {
    await browser.sleep(1000);
    await element.sendKeys(textToEnter);
}

1 个答案:

答案 0 :(得分:1)

据我所知,奇怪的是,您以正确的方式使用了。 Protractor的本质就是所有浏览器动作都用Promises(需要等待)包装,然后使用Page Object Model,我们在页面对象中声明的所有功能(通常包含浏览器动作)也都需要等待。最后,我们等待着同样的动作。

我实际上是不久前问过similar question的,我不确定这些问题是否足够相似以至于可以标记为重复,所以我暂时不作标记。

就最佳做法而言,我认为您采用的方法很好。