映射包含错误的SignalProducer以返回NoError

时间:2018-07-17 19:12:14

标签: ios swift reactive-swift

我正在与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'产生'SignalProducer ',而不是预期的    上下文结果类型'SignalProducer '

最终,我只想打印出错误,然后返回。

1 个答案:

答案 0 :(得分:0)

嘎嘎。

我之前曾尝试过一些flatMapError工作,但可以将其用于以下工作:

.flatMapError({ error -> SignalProducer<Void, NoError> in
    return SignalProducer.empty
    })