我正在考虑使用我自己的自定义signal框架将项目转换为使用ReactiveSwift,但有一个基本问题我从未想过如何在ReactiveSwift中解决:
作为一个简化的示例,假设您有两个可变属性:
let a = MutableProperty<Int>(1)
let b = MutableProperty<Int>(2)
然后,我们派生一个结合了这两个属性的属性来实现我们的逻辑:
let c = Property.combineLatest(a, b).map { a, b in
return a + b
}
稍后,我们收到一些信息,这些信息促使我们同时更新a
和b
的值:
a.value = 3
b.value = 4
现在的问题是,c
将通知它的侦听器它具有值3 -> 5 -> 7
。5完全是虚假的,并不代表有效的状态,因为我们从来不希望a
等于3而b
等于2的状态。
有什么办法可以解决这个问题吗?一种方法,可以抑制对Property
的更新,同时将其所有依赖项更新为新状态,并且只在完成后才允许更新?
https://stackoverflow.com/questions/56780610
复制相似问题