В настоящее время я пишу тест e2e, и я хотел бы создать несколько классов, которые абстрагируют меня от определенных асинхронных задач. В конце я хотел бы создать экземпляр объекта, который позволил мне связать асинхронные функции. Допустим, у меня есть Walker
, который позволяет мне перемещаться по странице. Я хотел бы использовать это следующим образом:
const walker = new Walker(t)
await walker
.goToMainPage()
.goToProfile()
В настоящее время я могу использовать его только так:
const walker = new Walker(t)
await walker.goToMainPage()
await walker.goToProfile()
Это грубая реализация того, как я в настоящее время реализовал свой класс Уокера. Где t
- это объект, который позволяет выполнять асинхронные действия в моем браузере.
class Walker {
constructor(t) {
this.t = t;
}
async goToMainPage () {
await t.goTo('url/main')
return this
}
async goToProfile () {
await t.goTo('url/Profile')
return this
}
}
Есть идеи, как создавать асинхронные цепочки вызовов функций?