这是一个设计模式问题。
想象一个编程任务,其中一个人正在开发一个将与服务器异步(通过流)交互的客户端。假设挑战是执行不确定数量的任务,每个任务都可能产生不确定数量的子任务(即 - 爬树)。每个任务向服务器发出一个异步请求,并提供两个块(一个用于处理预期返回条件,一个用于错误条件)来处理响应处理。
在这样的场景中,我很容易看出如何将出站请求排队,但是清空该队列并不意味着整体任务已完成,因为后续响应处理可能会排队更多出站请求。在完成整体任务的过程中,出站请求队列可能多次为零。
在 iOS 下,您会建议什么样的选项(设计模式和有用的类)来确定整体任务何时真正完成?
另一个问题是,在错误情况下(对于任何子任务),我希望取消整体任务(和所有子任务)。
提前致谢!