This commit is contained in:
Михаил Капелько
2023-12-31 20:04:42 +03:00
parent b67ed0c593
commit 2df3868836
3 changed files with 9 additions and 9 deletions

View File

@@ -1,31 +0,0 @@
import BusX
import Combine
extension MeetupId {
final class Debounce<Src, Dst> {
let v = PassthroughSubject<Src, Never>()
var subscriptions = [AnyCancellable]()
init(
_ sec: Double,
_ handler: @escaping ((Src) -> Dst?),
_ src: String,
_ dst: String
) {
Bus.receiveSync(
[src],
{ [weak self] _, v in self?.v.send(v) },
&subscriptions
)
Bus.sendSync(
dst,
v
.debounce(for: .seconds(sec), scheduler: DispatchQueue.main)
.compactMap { (v: Src) in handler(v) }
.eraseToAnyPublisher(),
&subscriptions
)
}
}
}

View File

@@ -1,31 +0,0 @@
import BusX
import Combine
extension MeetupId {
final class Delay<Src, Dst> {
let v = PassthroughSubject<Src, Never>()
var subscriptions = [AnyCancellable]()
init(
_ sec: Double,
_ handler: @escaping ((Src) -> Dst?),
_ src: String,
_ dst: String
) {
Bus.receiveSync(
[src],
{ [weak self] _, v in self?.v.send(v) },
&subscriptions
)
Bus.sendSync(
dst,
v
.delay(for: .seconds(sec), scheduler: DispatchQueue.main)
.compactMap { (v: Src) in handler(v) }
.eraseToAnyPublisher(),
&subscriptions
)
}
}
}