CombineEx

通过添加类似于PromisesAllAnyAwaitRace 操作符来改进 Combine

所有新增操作符都是线程安全的

安装

Swift Package Manager

.package(url: "https://github.com/CodeEagle/CombineEx.git", from: "1.0.0")

用法

请记住将 AnyCancelabel 保存在你自己的作用域内

All

// same type
let token = all(publisher...)
let token = all([publisher])

// different type
let token = all(a, b)
// up to four different pulisher
let token = all(a, b, c, d)

Any

// same type
let token = any(publisher...)
let token = any([publisher])

// different type
let token = any(a, b)
// up to four different pulisher
let token = any(a, b, c, d)

Await

_ = try publisher.await()

Race

// only support same type racing
let token = race(publisher...)
let token = race([publisher])