当函数没有 return 值时,使用页面对象模型是更好地实践 return 承诺还是在函数中使用 async/await

Using the Page Object Model is it better practice to return a promise or to use async/await in the function when the function does not return a value

希望就这种情况下的最佳做法获得一些反馈 (Protractor 测试框架使用带有 async/await 而不是 SELENIUM_PROMISE_MANAGER 的页面对象模型).

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

选项1

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

选项2

this.setUsername = function (username) {
    return usernameInput.sendKeys(username);
}

调用任一选项的语法

await loginPO.setUsername('admin');

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

在我看来,最好使用 选项 1,您可以在其中明确显示您的函数是 async,因为有一些操作需要等待。

因此,每个人都会明白使用它需要函数来解决承诺。 此外,如果您的方法将有两个或多个需要等待的操作,那么,您将必须使您的函数 async.