Редактировать: Почему это не дубликат: потому что Cypress , просто прочитайте вместо того, чтобы пометить все как дубликаты.
Редактировать 2: Также см. Ответ для лучшего понимания различий междуобычный async for
зацикливает проблемы и этот вопрос.
Я пишу кипарисовые тесты и хочу создать команду кипариса, которая наполняет мою базу данных списком пользователей.Я хочу, чтобы цикл создания ожидал создания каждого пользователя, прежде чем он перейдет к следующему (потому что я хочу, чтобы это было сделано в определенном порядке).
На данный момент мой цикл выглядит следующим образом:
Cypress.Commands.add("populateDb", (users) => {
var createdItems = []
for (const user of users) {
cy.createUser(user, 'passe').then(response => {
createdUsers.unshift(response.body.user)
})
}
return createdItems
})
Конечно, этот цикл не ожидает создания каждого пользователя, прежде чем перейти к следующему (я хочу 'последовательную обработку', НЕ 'параллельно, а затем ждать всех обещанийрешить ')
Я прочитал ответы об асинхронном цикле for здесь:
Но я не могу показатьсячтобы найти то, что я хочу, главным образом потому, что Cypress не позволяет мне объявить мою функцию как асинхронную следующим образом:
Cypress.Commands.add("populateDb", async (users) => {
//Some code
})
И если я не объявляю это async
, я не могу использовать await
.
Не существует ли какой-нибудь метод короля get()
, который просто синхронно ожидает разрешения Обещания?