通过添加类似于Promises的All、Any、Await、Race 操作符来改进 Combine
所有新增操作符都是线程安全的
Swift Package Manager
.package(url: "https://github.com/CodeEagle/CombineEx.git", from: "1.0.0")
请记住将 AnyCancelabel 保存在你自己的作用域内
// 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)
// 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)
_ = try publisher.await()
// only support same type racing
let token = race(publisher...)
let token = race([publisher])