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

标签 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' produces 'SignalProducer< Void, F >', not the expected contextual result type 'SignalProducer< Void, NoError >'

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

最佳答案

嘎嘎。

我之前尝试过一些 flatMapError 工作,但让它与以下内容一起工作:

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

关于ios - 映射包含错误的 SignalProducer 以返回 NoError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51388685/

相关文章:

ios - 为什么在相似的代码片段中初始化的顺序不同。 swift 4

ios - 以编程方式添加内容后调整 uiscrollview 的大小

应用程序未运行时的 iOS 可达性

ios - Retina iPad 应用程序设计中的 DPI

swift - 为什么observeValues block 没有被调用?

ios - 如何用 OR 组合两个信号

ios - ReactiveSwift 中 PublishSubject 的等价物是什么?

ios - 使用核心数据进行 Swift 4 单元测试

ios - 无法在 Xcode Playgrounds 上运行 SAConfettiView

ios - 使用指针在 Parse 中查询行 (ios)