希望得到一些关于这种情况下最佳实践的反馈(使用async / await而不是SELENIUM_PROMISE_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然后我声明等待两次(在func和调用时),这似乎是不必要的,但函数表现得更符合我的预期。如果我使用选项2然后await只使用一次但是从函数返回任何东西似乎是错误的,我只需要设置一个值而不返回任何东西。
在我看来,最好使用选项1,在这里您将明确显示您的函数是async
,因为有一些需要等待的操作。
因此,每个人都会明白,使用它需要功能来解决承诺。此外,如果您的方法将有两个或更多需要等待的操作,那么,您将必须使您的函数async
。