有一种方法可以执行网络调用。有时候我想等待电话的结果,有时候我不想。为了实现该行为,我使用launch方法并返回Job。所以我可以根据我的需要,选择join或不选择该工作。问题是,有时我可以确定不需要网络调用(请求不包含数据)。那么,我如何创建一个空的Job,它已经完成,并且不会干扰协程调度器?朴素的Job()看起来足够好了,但可能我错过了关于Kotlin协程内部的一些重要内容。
launch
join
Job()
bnl4lu3b1#
我们可以简单地使用Job()创建一个作业,并在返回之前完成它:
fun doNetwork(): Job { val job = Job() job.complete() return job }
我们也可以用更简洁的方式来写:
fun doNetwork(): Job = Job().also { it.complete() }
1条答案
按热度按时间bnl4lu3b1#
我们可以简单地使用
Job()
创建一个作业,并在返回之前完成它:我们也可以用更简洁的方式来写: