Selenium webdriver 当函数不返回值时,使用页面对象模型是返回承诺还是在函数中使用async/await更好

Selenium webdriver 当函数不返回值时,使用页面对象模型是返回承诺还是在函数中使用async/await更好,selenium-webdriver,async-await,protractor,pageobjects,Selenium Webdriver,Async Await,Protractor,Pageobjects,希望在这种情况下得到一些关于什么是最佳实践的反馈 (量角器测试框架使用带有async/await而不是SELENIUM\u PROMISE\u MANAGER的页面对象模型) 假设我有一个名为setUsername的函数,它只是在一个字段中设置用户名。我想知道使用async/await来等待函数本身中的操作还是返回操作是更好的做法。无论哪种方式,只要调用函数,都需要等待 选项1 this.setUsername = async function (username) { await us

希望在这种情况下得到一些关于什么是最佳实践的反馈 (量角器测试框架使用带有async/await而不是SELENIUM\u PROMISE\u MANAGER的页面对象模型)

假设我有一个名为
setUsername
的函数,它只是在一个字段中设置用户名。我想知道使用async/await来等待函数本身中的操作还是返回操作是更好的做法。无论哪种方式,只要调用函数,都需要等待

选项1

this.setUsername = async function (username) {
    await usernameInput.sendKeys(username);
}
选项2

this.setUsername = function (username) {
    return usernameInput.sendKeys(username);
}
调用任一选项的语法

await loginPO.setUsername('admin');

推理:如果我使用option1,那么我将声明wait两次(在func中和调用时),这似乎是不必要的,但函数的行为更符合我的预期。如果我使用选项2,那么wait只使用一次,但是如果我只需要设置一个值而不返回任何内容,那么从函数返回任何内容似乎是错误的。

在我看来,最好使用选项1,在这里,您将明确显示您的函数是异步的,因为有一些操作需要等待

所以,每个人都会明白,使用it功能需要解决一个承诺。
此外,如果您的方法将有两个或多个操作需要等待,那么您必须使函数
异步

一致。如果函数中发生了多个操作,那么选项2将不起作用,并且最终会产生混合约定。好的,这对我来说也是有意义的。谢谢你的反馈