将包含错误的 SignalProducer 映射到 return 一个 NoError
Map a SignalProducer that contains an error to return a NoError
我在 iOS 项目中使用 ReactiveSwift 3.x 并且无法映射一个 SignalProducer
提供的错误变成另一个。
我的NoError SignalProducer
是:
func foo() -> SignalProducer<Void, NoError>
我要映射的 foo()
中正在调用的函数是:
func bar() -> SignalProducer<Data, MyError>
我目前有:
func foo() -> SignalProducer<Void, NoError> {
// Stuff happens here...
return bar()
.map({ _ -> Void in
return ()
})
.mapError({ error -> NoError in
print(error.localizedDescription)
// I do not want to handle this error
return NoError
})
}
但我收到错误消息:
'mapError' produces 'SignalProducer< Void, F >', not the expected
contextual result type 'SignalProducer< Void, NoError >'
最终,我只是想把错误打印出来,然后return。
嘎嘎.
我之前尝试过一些 flatMapError 的工作,但它与以下内容一起工作:
.flatMapError({ error -> SignalProducer<Void, NoError> in
return SignalProducer.empty
})
我在 iOS 项目中使用 ReactiveSwift 3.x 并且无法映射一个 SignalProducer
提供的错误变成另一个。
我的NoError SignalProducer
是:
func foo() -> SignalProducer<Void, NoError>
我要映射的 foo()
中正在调用的函数是:
func bar() -> SignalProducer<Data, MyError>
我目前有:
func foo() -> SignalProducer<Void, NoError> {
// Stuff happens here...
return bar()
.map({ _ -> Void in
return ()
})
.mapError({ error -> NoError in
print(error.localizedDescription)
// I do not want to handle this error
return NoError
})
}
但我收到错误消息:
'mapError' produces 'SignalProducer< Void, F >', not the expected contextual result type 'SignalProducer< Void, NoError >'
最终,我只是想把错误打印出来,然后return。
嘎嘎.
我之前尝试过一些 flatMapError 的工作,但它与以下内容一起工作:
.flatMapError({ error -> SignalProducer<Void, NoError> in
return SignalProducer.empty
})