可以说我有这个火力地堡异步函数,什么是在后台排队,什么不是
// a bunch of code...
FIRDatabase.database.reference.child("somechild").observeSingleEventOfType(.Value, withBlock{(snapshot) in
//some code inside of the completion handler})
请不要过分解读的代码片段要求更多的代码,我只需要一个简单的答案。它说,“一堆代码”,假设它实际上是在主队列上的一些代码。现在,当我写下observeSingleEvent Firebase完成处理程序时,我的分析就是这样。
observeSingleEvent获取后台队列上的快照,以便不阻止主队列上的UI。
获取快照后,“in”后面的代码块现在回到MAIN队列,因此可以将任何与UI相关的代码放在那里。
我的整个应用程序基于这个推理,所以如果我不正确,请告诉我实际发生了什么。
这确实是Firebase数据库客户端的工作方式:所有网络和磁盘I/O在主线程中发生**关闭**,然后在主线程上调用**回调/块。 –
非常感谢您的确认!安全地假设Facebook图形请求以相同的方式工作? – slimboy