Swift 债券框架 - 多对一关系 - 如果有任何变化则触发单个命令

Swift Bond framework - many to one relationship - trigger a single command if anything changes

考虑以下示例:

给定一组可观察值:

let value1 = Observable(false)
let value2 = Observable(false)
let value3 = Observable(false)

let isSaveButtonEnabled = Observable(false)

我想在每次发生变化时执行这段代码:

func validate() {
{...}
isSaveButtonEnabled.value = true
}

目前,配置这种关系的唯一方法是为每个 Observable 单独添加一个闭包:

value1.onNext {
self.validate()
}

value2.onNext {
self.validate()
}

....

目标:

我想使用与此类似的语法对其进行编程:

[value1, value2, value.....].onAnyChange {
self.validate()
}

我想到的东西:

private func configureValidationLogic() {
    [vaule1.eraseType(), 
     vaule2.eraseType(),
    vaule3.eraseType(),
    vaule4.eraseType(),
    vaule5.eraseType()].forEach { (signal) in
        signal.observeNext { [weak self] in
            guard let self = self else {return}
            self.validate()
        }
    }
}

也许,有更好的方法(built-in 进入库)实现相同的目的。