Angular Async wait与browser.wait方法的差异

Angular Async wait与browser.wait方法的差异,angular,protractor,Angular,Protractor,早上好, 我已经开始在量角器(Angular应用程序)中重构测试用例。我发现应该使用asyncwait方法编写测试用例,但我也尝试了browser.wait,我认为这与前面提到的方法是等效的。是这样吗?下面我添加代码示例 async function (msg) { await main.getMessagesFromConversation() .then((bodyMessage) => expect(bodyMessage).to.equal(msg)); } brow

早上好, 我已经开始在量角器(Angular应用程序)中重构测试用例。我发现应该使用
asyncwait
方法编写测试用例,但我也尝试了
browser.wait
,我认为这与前面提到的方法是等效的。是这样吗?下面我添加代码示例

async function (msg) {
  await main.getMessagesFromConversation()
    .then((bodyMessage) => expect(bodyMessage).to.equal(msg));
}
browser.wait也一样

function (msg) {
  return browser.wait(main.getMessagesFromConversation()
    .then((bodyMessage) => expect(bodyMessage).to.equal(msg)), 5000);
}

async/await
browser.wait
不同

Async/await是一种处理承诺的javascript风格。量角器框架内的所有浏览器交互(以及许多其他功能)都被包装在幕后。这是由于量角器所依赖的webdriverJS是完全异步的。量角器使用允诺来允许代码以更容易编写的顺序执行

最初webdriverJS提供了一种称为控制流的功能,允许在幕后处理所有这些承诺。由于webdriverJS版本4(我相信)已被弃用,而从量角器版本6.0开始,量角器现在使用的是webdriverJS版本4,因此在量角器中也弃用了控制流
Async/await
是处理这些承诺的一种更简单、更直接的方法

在量角器中,
async/await
可以用作
的替代品。then.catch()
。因此,对于您的示例,您只需编写:

async function (msg) {
  let conversationMsgs = await main.getMessagesFromConversation()
  expect(conversationMsgs).to.equal(msg));
}

是一个命令,它暂停执行,直到特定的承诺或条件得到解决或达到超时时间。它通常用于等待元素出现在页面上,但也有许多其他用途。

No
async/await
浏览器不同。wait

Async/await是一种处理承诺的javascript风格。量角器框架内的所有浏览器交互(以及许多其他功能)都被包装在幕后。这是由于量角器所依赖的webdriverJS是完全异步的。量角器使用允诺来允许代码以更容易编写的顺序执行

最初webdriverJS提供了一种称为控制流的功能,允许在幕后处理所有这些承诺。由于webdriverJS版本4(我相信)已被弃用,而从量角器版本6.0开始,量角器现在使用的是webdriverJS版本4,因此在量角器中也弃用了控制流
Async/await
是处理这些承诺的一种更简单、更直接的方法

在量角器中,
async/await
可以用作
的替代品。then.catch()
。因此,对于您的示例,您只需编写:

async function (msg) {
  let conversationMsgs = await main.getMessagesFromConversation()
  expect(conversationMsgs).to.equal(msg));
}
是一个命令,它暂停执行,直到特定的承诺或条件得到解决或达到超时时间。它通常用于等待元素出现在页面上,但也可以有许多其他用途