Kotlin协同程序不等待完成

我有一个遗留项目,我想在联系后端时使用协程。 后端由Hybris交付的sdk处理。 它使用凌空例如,并与一些回调。 我想要的是用协程包装这些回调。 但是我遇到的问题是,协程并不等待完成,它启动协程,继续下一行,方法返回一个值,并在协程完成之后很久。 我的代码:

suspend fun ServiceHelper.getList(): ListOfWishes { return suspendCancellableCoroutine { continuation -> getAllLists(object : ResponseReceiver<ListOfWishes> { override fun onResponse(response: Response<ListOfWishes>?) { continuation.resume(response?.data!!) } override fun onError(response: Response<ErrorList>?) { val throwable = Throwable(Util.getFirstErrorSafe(response?.data)) continuation.resumeWithException(throwable) } }, RequestUtils.generateUniqueRequestId(), false, null, object : OnRequestListener { override fun beforeRequest() {} override fun afterRequestBeforeResponse() {} override fun afterRequest(isDataSynced: Boolean) {} }) } } 

帮手方法:

 suspend fun ServiceHelper.wishLists(): Deferred<ListOfWishes> { return async(CommonPool){ getWishList() } } 

在协程被称为的地方:

  fun getUpdatedLists(): ListOfWishes?{ val context = Injector.getContext() val serviceHelper = Util.getContentServiceHelper(context) var list = ListOfWishLists() launch(Android){ try { list = serviceHelper.wishLists().await() }catch (ex: Exception){ Timber.d("Error: $ex") } } return list 

所以不是等待serviceHelper.wishLists().await()完成,而是返回列表。 我也试图让这个方法返回一个runBlocking{} ,但是这只会阻塞UI线程,并不会结束协程。