Publishers.Zip — это оператор Combine, который объединяет выходные значения нескольких publishers в кортежи, выдавая новое значение только когда каждый publisher выдал новый элемент.
PublisherA: --1------3----
PublisherB: ----2---------
Zip output: ------(1,2)---
let userRequest = URLSession.shared.dataTaskPublisher(for: userURL)
let settingsRequest = URLSession.shared.dataTaskPublisher(for: settingsURL)
Publishers.Zip(userRequest, settingsRequest)
.sink { user, settings in
// Оба ответа доступны здесь
}
В отличие от CombineLatest, который срабатывает каждый раз когда любой publisher обновляется, Zip обеспечивает строгое соответствие один к одному. Это делает его идеальным когда тебе нужны точно сопоставленные результаты, а не просто самые свежие значения.
Publishers.Zip выпустит комбинированный кортеж только после того, как каждый исходный publisher выпустит хотя бы одно значение с момента последнего выпуска.
Новый — ещё не проверен сообществом
Вы