【发布时间】:2021-07-15 13:49:26
【问题描述】:
我有一个很长的 API 端点列表,我需要按特定顺序依次调用,以使我的应用程序的状态与服务器保持同步。我选择使用组合链来实现这一点。每个操作都会调用一个函数来完成一些工作(读取和写入一些 Core Data 模型)并返回相同的类型,例如:-> AnyPublisher<SyncEvent?, Error>
它看起来像这样:
Timer.publish(every: interval, on: .current, in: .common)
.receive(on: DispatchQueue.global(qos: .background))
.flatMap(syncEndpointOne)
.flatMap(syncEndpointTwo)
.flatMap(syncEndpointThree)
.flatMap(syncEndpointFour)
...
在添加了多个这样的函数后,Swift 编译器和语言服务器会放弃并变得无响应,它将永远挂起。注释掉单独的行可以验证每一行都没有问题——只是这太复杂了,编译器无法推断和推理。
我怎样才能重写这个或给编译器更多的信息来解决这个问题?
(xcode 12.5.1 和 swift 5.4.2)
【问题讨论】:
标签: swift xcode compilation combine