如果我运行此代码:
fanoutObj = fanoutPost(followersList.uid, followers: followersSnap, post: post)
print(fanoutObj)
并且fanoutPost函数有一个非常长的for循环,那么在打印(fanoutObj)之前,函数中的所有代码(包括整个for循环)都会完成吗?
答案 0 :(得分:1)
答案取决于for
循环的位置:
for
循环直接位于函数体中,则答案为" yes",因为函数末尾或return语句的路径上的所有语句都必须在函数返回之前完成。for
循环位于一个没有在函数本身中被调用的闭包中,被异步调用,或者在一个单独的队列中执行,那么答案是" no",因为只有回调的注册必须完成,而回调本身是单独运行的。一种简单的方法是使用断点或调试输出来检查执行的相对顺序。