假设您正在观察一个经常变化的属性,例如,当它低于阈值时应该重新填充的队列?
queue.rac_valuesForKeyPath("count", observer: self)
.toSignalProducer()
.filter({ (queueCount: AnyObject?) -> Bool in
let newQueueCount = queueCount as! Int
return newQueueCount < 10
})
.on(next: { _ in
// Refilling the queue asynchronously and takes 10 seconds
self.refillQueue(withItemCount: 20)
})
.start()
当队列为空时,将触发下一个处理程序并填充队列。在填充队列时,SignalProducer 发送一个新的下一个事件,因为 count 属性更改为 1 - 一个又一个。但我不希望触发下一个处理程序。相反,我希望每次队列低于该阈值时触发一次。
我怎样才能以最好的方式做到这一点?是否有任何有用的事件流操作?有任何想法吗?
干杯,
杰拉尔多