上图我理解的是外层suspend函数生成的continuation的resume先执行(resumeWith执行弟一次label 1)
然后遇到挂起函数a就return了一个挂起状态。(label++)
然后把自己包装成了一个safeContinuation 当做complete传递给了a。(这里我没看到a是否执行了自己的resume。不知道是否会执行?)然后a中的 it.resume(Unit)(resumeWith执行第二次 label 2)同时,外层suspend函数恢复执行。
看了代码之后还有一个小疑惑。
视频只说了如果是挂起函数会返回COROUTINE_SUSPENDED这个标记,但是没说怎么判断的这个函数是否是挂起函数。(ps:我想看看单线程延时任务是怎么判定为挂起的)