Swift链式关闭?

时间:2018-07-02 08:24:51

标签: swift closures chain

我有一个TaskExecutor和几个Task

class TaskExecutor {
    func execute(_ task: Task, completion: ()->()) {
        // do something async here
        completion()
    }
}

class Task {
    // code for task
}

现在,我需要一个接一个地执行任务-也就是说,第二个任务仅在第一个任务完成时才开始,我知道我可以为任务分配一个可变数组,并继续从数组并在TaskExecutor的完成闭合中执行它,但是有什么聪明的方法吗?

我还考虑了类似Chainable协议的内容:

protocol Chainable<T> {
    var next: T?
}

并使Task符合它,然后将所有任务链接起来,像链表一样,完成一个任务后执行next,但是我再次觉得应该有一些更容易,更直接的事情。 >

谢谢!

0 个答案:

没有答案