async / await不使用promise链接

时间:2018-01-31 07:17:31

标签: typescript async-await protractor

我的代码如下所示:

await enterName();
await enterCity();
await submit();

async enterName() {
element.sendKeys('name');
}
async submit() {
element.submit();
waitForAngular();
}

这里的问题是当调用提交功能(异步)时,它根本无法进行任何网络调用。 我尝试使用controlFlow,但它似乎只有在我提交之前获得url才有效。        protractor.promise.controlFlow.execute( driver.get(url)); await submit(); ---------->作品!

但是我的要求是首先打开此网址,填写表单,然后进行异步提交调用。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您需要等待所有返回承诺的函数,包括来自量角器的函数:

class x {
    element = element(".test");
    async enterName() {
        await this.element.sendKeys('name');
    }

    async enterCity() {
        return Promise.resolve();
    }

    async waitForAngular() {
        return Promise.resolve();
    }
    async submit() {
        await this.element.submit();
        await this.waitForAngular();  // Assuming this is async as well.
    }

    async test() {
        await this.enterName();
        await this.enterCity();
        await this.submit();
    }
}

答案 1 :(得分:0)

  1. 使用async/await时必须disable Control Flow
  2. 只有在你内部使用async处理某些承诺时,函数才应为await