将包含错误的 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
    })