d
This commit is contained in:
@@ -42,7 +42,33 @@ public extension Bus {
|
||||
.sink { v in handler(v.0, v.1) }
|
||||
.store(in: &subscriptions)
|
||||
}
|
||||
|
||||
static func receiveAsync<T>(
|
||||
_ subscriptions: inout Set<AnyCancellable>,
|
||||
_ keys: Set<String>,
|
||||
_ handler: @escaping ((String, T) -> Void)
|
||||
) {
|
||||
Service.singleton?.broadcaster
|
||||
.compactMap { v -> (String, T)? in
|
||||
guard
|
||||
keys.contains(v.key),
|
||||
let value = v.value as? T
|
||||
else {
|
||||
return nil
|
||||
}
|
||||
return (v.key, value)
|
||||
}
|
||||
.receive(on: DispatchQueue.main)
|
||||
.sink { v in handler(v.0, v.1) }
|
||||
.store(in: &subscriptions)
|
||||
}
|
||||
|
||||
static func send(_ key: String, _ value: Any) {
|
||||
Service.singleton?.send(key, value)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
static func sendAsync<T: Equatable>(
|
||||
_ subscriptions: inout Set<AnyCancellable>,
|
||||
_ key: String,
|
||||
@@ -53,4 +79,5 @@ public extension Bus {
|
||||
.sink { v in Service.singleton?.send(key, v) }
|
||||
.store(in: &subscriptions)
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user