let (signal, sink) = Signal<[CLBeacon], BeaconManagerError>.pipe()
当我因为用户禁用蓝牙而调用它时:
sendError(self.sink, error)
被中断,再次启用蓝牙后Signal
我没有收到更多next
或事件。坏了interrupted
。Signal
如何在不中断/中断的情况下将error
类型发送到?我在 RAC 4 文档中找不到。谢谢!observer
Signal
let (signal, sink) = Signal<[CLBeacon], BeaconManagerError>.pipe()
当我因为用户禁用蓝牙而调用它时:
sendError(self.sink, error)
被中断,再次启用蓝牙后Signal
我没有收到更多next
或事件。坏了interrupted
。Signal
如何在不中断/中断的情况下将error
类型发送到?我在 RAC 4 文档中找不到。谢谢!observer
Signal
Next* (Error|Completed)
如果您想要与我建议在类型中编码不同的语义。您可以使用一个Signal
不会失败的值,但其值可以是 success 或 failure,方法是Result
:
Signal<Result<[CLBeacon], BeaconManagerError>, NoError>
这signal
不会发出任何错误,但它的Next
事件将是Result.Success<[CLBeacon]>
or Result.Failure<BeaconManagerError>
, ** 并且信号不会在接收到Result.Failure
.