如何避免三个数据库操作中的厄运金字塔?

时间:2016-10-17 08:27:06

标签: ios swift refactoring swift3

从Web服务接收数据后,我需要执行三个数据库操作

   self.save(responses, child: child, year: year, completionBlock:
     {(success, error) in
           self.saveModifiedDate(child, year: year, completionBlock: { (result) in
            self.fetchAll(child, year: year!, completionBlock: completionBlock)
            })
      })

1 个答案:

答案 0 :(得分:0)

您可以尝试使用或实现自己(并非那么难)类似Future的API。一个好的框架是FutureKit

代码看起来像

save(responses, child: child, year: year)
  .onSuccess(saveModifiedDate)
  .onSuccess(fetchAll)
  .onSuccess { //final completion handler }
  .onFailure { //handle error }
相关问题