代码之家  ›  专栏  ›  技术社区  ›  CodeBender

映射包含错误的signalproducer以返回noerror

  •  0
  • CodeBender  · 技术社区  · 8 年前

    我正在和 反应敏捷3.x 在iOS项目中,无法映射一个 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<void,f>”,而不是预期的 上下文结果类型“signalproducer<void,noerror>”

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

    1 回复  |  直到 8 年前
        1
  •  0
  •   CodeBender    8 年前

    江湖郎中。

    我之前尝试过一些flatmaperror工作,但得到了以下结果:

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