spread
Расширить массив на несколько аргументов.
Идентично
.then(), но всегда ожидает структуру, похожую на массив, в качестве объекта.
Синтаксис
.spread(callbackFn)
.spread(options, callbackFn)
Использование
Правильное использование
cy.getCookies().spread(() => {}) // Yield all cookies
Неправильное использование
cy.spread(() => {}) // Errors, cannot be chained off 'cy'
cy.location().spread() // Errors, 'location' does not yield an array
Аргументы
fn (Функция)
Передайте функцию, которая расширит массив на ее аргументы.
options (Объект)
Передайте объект с опциями для изменения поведения по умолчанию .spread().
| Опция | Значение по умолчанию | Описание |
|---|---|---|
timeout |
defaultCommandTimeout |
Время ожидания, в течение которого .spread() должен быть разрешён, прежде чем произойдёт срабатывание таймаута
|
Возвращаемые значения
-
.spread()'возвращает значение вашей обратной функции' - `.spread()` не изменит объект, если будет возвращён `null` или `undefined`.
Примеры
Псевдонимы маршрутов
Расширение массива псевдонимов маршрутов
cy.intercept('/users/*').as('getUsers')
cy.intercept('/activities/*').as('getActivities')
cy.intercept('/comments/*').as('getComments')
cy.wait(['@getUsers', '@getActivities', '@getComments']).spread(
(getUsers, getActivities, getComments) => {
// each interception is now an individual argument
}
)
Куки
Расширение массива куков
cy.getCookies().spread((cookie1, cookie2, cookie3) => {
// each cookie is now an individual argument
})
Правила
Требования
-
.spread()требует цепочки команд. -
.spread()требует цепочки команд, которые возвращают структуру, похожую на массив.
Утверждения
-
.spread()выполнит утверждения только один раз и не будет повторён.
Таймауты
-
.spread()может устанавливать таймаут ожидания разрешения возвращённой вами промиссы.
Журнал команд
.spread() не записывается в журнал команд
История
| Версия | Изменения |
|---|---|
| 0.5.9 |
.spread() команда добавлена |
См. также
© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/spread