【问题标题】:Convert [Future<Object,Error>] to Future<[Object],Error>将 [Future<Object,Error>] 转换为 Future<[Object],Error>
【发布时间】:2020-03-28 18:21:48
【问题描述】:

有什么方法可以解析下面的代码并将其值作为数组 Future 返回。我正在使用BrightFutures 未来实现

return apiService.getArrayObject()
   .flatMap(NetworkQueue.context) { (arrayObjects: [ArrayObject]) -> Future<[Object], Error> in
      let objects = arrayObjects.map {
         apiService.getObject(of: $0.objectId)
      }
      return objects // ERROR since objects is [Future<Object,Error>] rather than needed output
    }

【问题讨论】:

    标签: swift parallel-processing functional-programming future


    【解决方案1】:

    使用顺序

       return apiService.getArrayObject()
          .flatMap(NetworkQueue.context) { (arrayObjects: [ArrayObject]) -> Future<[Object], Error> in
              let objects: [Future<Object, Error>] = arrayObjects.map {
                  apiService.getObject(of: $0.objectId)
              }
              let sequenceFuture: Future<[Object], NoError> = objects
                        .sequence()
    
             return sequenceFuture
        }
    
    

    【讨论】:

      猜你喜欢
      • 2022-07-26
      • 1970-01-01
      • 2019-10-25
      • 2015-07-30
      • 2016-05-04
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多