【发布时间】:2016-05-28 01:39:35
【问题描述】:
假设我有一个即时消息应用程序,每次收到消息时都会发出哔声。我想debounce 发出哔哔声,但我想在第一条消息到达时播放哔哔声,而不是为后续消息播放哔声(例如,2 秒的时间跨度)。
另一个例子可能是:我的应用程序发送输入通知(因此我正在与之聊天的用户可以看到我正在输入消息)。我想在开始输入时发送输入通知,但仅以 X 秒为间隔发送新的通知,因此我不会为我输入的每个字符发送输入通知。
这有意义吗?有运营商吗?现有的运营商能做到吗?
这是我的第一个示例的代码。我现在用debounce 解决它,但这并不理想。如果我每隔 1 秒收到 1000 条消息,则在最后一条消息到达之前它不会播放声音(我想在第一条消息上播放声音)。
self.messagesHandler.messages
.asObservable()
.skip(1)
.debounce(2, scheduler: MainScheduler.instance)
.subscribeNext { [weak self] message in
self?.playMessageArrivedSound()
}.addDisposableTo(self.disposeBag)
谢谢!
【问题讨论】:
-
这个解释很好medium.com/@dkhuong291/…