【发布时间】:2023-01-19 03:22:41
【问题描述】:
有没有可能限制didSet,让它在一个时间间隔内只触发一次,比如每秒一次,而不是一秒钟多次?像某种去抖方法?
@Published var someProperty: String = "" {didSet {
Task {
await someFunction(someParamater: someProperty)
}
}}
【问题讨论】:
标签: swift
有没有可能限制didSet,让它在一个时间间隔内只触发一次,比如每秒一次,而不是一秒钟多次?像某种去抖方法?
@Published var someProperty: String = "" {didSet {
Task {
await someFunction(someParamater: someProperty)
}
}}
【问题讨论】:
标签: swift
每个@Published 属性在后台都有一个 Combine 发布者。您可以订阅此发布者并像这样对其进行去抖动:
myModel.$someProperty
.debounce(...)
.sink { value in
// Do what you wanted to do in didSet
}
.store(in: &cancellables)
【讨论】: