在Swift Combine中使用publisher.debounce()的正确语法是什么?

在Swift Combine中使用publisher.debounce()的正确语法是什么?,swift,swift5,combine,Swift,Swift5,Combine,在苹果2019年的WWDC视频《实践中的Swift Combine》中,他们演示了使用debounce发布器来降低消息传输速度 return $username .debounce(for: 0.5, scheduler: RunLoop.main) .removeDuplicates() .eraseToAnyPublisher() 但是,每当我尝试以类似的方式使用它时,就会出现以下错误: 无法使用类型为“(for:Double,scheduler:RunLoop)”的参数列表调

在苹果2019年的WWDC视频《实践中的Swift Combine》中,他们演示了使用
debounce
发布器来降低消息传输速度

return $username
  .debounce(for: 0.5, scheduler: RunLoop.main)
  .removeDuplicates()
  .eraseToAnyPublisher()
但是,每当我尝试以类似的方式使用它时,就会出现以下错误:

无法使用类型为“(for:Double,scheduler:RunLoop)”的参数列表调用“debounce”

debounce()
签名是:

public func debounce<S>(for dueTime: S.SchedulerTimeType.Stride, 
                          scheduler: S,
                            options: S.SchedulerOptions? = nil) -> 
                                    Publishers.Debounce<Self, S> where S : Scheduler
public func debounce(对于dueTime:S.SchedulerTimeType.Stride,
调度员:S,
选项:S.SchedulerOptions?=nil)->
发布者。去Bounce其中S:Scheduler
SchedulerTimeType.Stride
似乎可以用数字进行初始化,但它对我不起作用,或者我对Swift泛型缺乏经验

正确的说法是什么

编辑

副本

目前,搜索像“Combine”这样的通用词相当具有挑战性

macOS 10.15,Xcode 11

debounce
操作符接受类型
S.SchedulerTimeType.Stride
,该类型如下所示:

let sub = NotificationCenter.default
    .publisher(for: NSControl.textDidChangeNotification, object: filterField)
    .debounce(for: .milliseconds(500), scheduler: RunLoop.main)
    .subscribe(on: RunLoop.main)
    .assign(to:\MyViewModel.filterString, on: myViewModel)

此处也有报道:——显然,目前的beta版还没有实现这一点。谢谢。我认为最初的问题是Xcode 11 beta 1不支持
调度程序
参数。在beta 2的发行说明中,它现在被列为受支持。最初的错误是关于
调度程序
的无效参数,不是时间间隔,但当时我不清楚。另外,WWDC屏幕上的大多数代码实际上都没有编译-他们在制作幻灯片时往往会有很大的创作自由。