private suspend fun joinSuspend() = suspendCoroutine<Unit> { continuation ->
doOnCompleted {
continuation.resume(Unit)
}
}
上面这个join的实现,用到了suspendCoroutine,我记得前几节课里,老师你说过,suspendCoroutine中必须要执行线程切换,这个suspend函数才会被真正的挂起,挂起后会返回一个特殊的标记对象。但是这里doOnCompleted中我看了下只是用来创建和保存Disposable,并没有执行线程切换呀?它是如何被挂起的呢?