viewModel.itemCount.signal .skipRepeats() .skip(while: { itemCount -> Bool in return itemCount == 0 }) .observeValues { itemCount in print("Item count: \(itemCount)") // Will still print 0 }
不幸的是,它仍然允许值0通过。
skip(while:) 仅在信号开始时应用。由于初始值满足其标准,因此允许信号继续,并且
skip(while:)
filter(:)
.filter({ itemCount -> Bool in return itemCount != 0 })
使用滤波器不会影响信号,而是关注是否应该观察传递的值。