kotlin中將回撥改寫為協程
我們可以將Guava的FutureCallback改造為掛起函式:
suspend fun <T> Future<T>.await(): T = suspendCoroutine {
Futures.addCallback(this, object: FutureCallback<T> {
override fun onSuccess(result: T?) {
if (result != null) {
it.resumeWith(Result.success(result))
}
}
override fun onFailure(t: Throwable) {
it.resumeWithException(t)
}
})
}
esumeWith傳遞執行結果,resumeWithExeption傳遞異常。
相關文章
- rxjava回撥地獄-kotlin協程來幫忙RxJavaKotlin
- Python 中的程式、執行緒、協程、同步、非同步、回撥Python執行緒非同步
- [譯] 使用 Kotlin 協程改進應用效能Kotlin
- 在Java中實現回撥過程 (轉)Java
- 用Kotlin實現極簡回撥Kotlin
- Kotlin的協程Kotlin
- Kotlin Coroutine(協程): 二、初識協程Kotlin
- Kotlin Coroutine(協程): 三、瞭解協程Kotlin
- Kotlin 協程一 —— CoroutineKotlin
- Kotlin 之旅7 協程Kotlin
- 如何讓你的回撥更具Kotlin風味Kotlin
- 在 Android 開發中使用 Kotlin 協程 (一) -- 初識 Kotlin 協程AndroidKotlin
- Android版kotlin協程入門(四):kotlin協程開發實戰AndroidKotlin
- Kotlin Coroutines(協程)講解Kotlin
- Kotlin Coroutine(協程)簡介Kotlin
- Kotlin協程快速進階Kotlin
- Kotlin協程快速入門Kotlin
- Android Kotlin 協程初探AndroidKotlin
- Kotlin 協程使用手冊Kotlin
- Vert.x Kotlin 協程Kotlin
- 在Dash中更靈活地編寫回撥函式函式
- Android版kotlin協程入門(三):kotlin協程的異常處理AndroidKotlin
- 【譯】kotlin 協程官方文件(1)-協程基礎(Coroutine Basics)Kotlin
- Kotlin協程學習之路【一】Kotlin
- Kotlin Coroutine(協程) 基本知識Kotlin
- Kotlin coroutine之協程基礎Kotlin
- Android Kotlin協程入門AndroidKotlin
- kotlin協程的掛起suspendKotlin
- js中的回撥函式JS函式
- JavaScript中回撥的示例理解JavaScript
- WCF中的非同步回撥非同步
- 深究Python中的asyncio庫-函式的回撥與排程Python函式
- Swoole 協程 MySQL 客戶端與非同步回撥 MySQL 客戶端的對比MySql客戶端非同步
- 回撥地獄-編寫非同步JavaScript指南非同步JavaScript
- [譯] 管中窺豹:RxJava 與 Kotlin 協程的對比RxJavaKotlin
- AsyncTask為什麼可以在回撥中修改UI(原始碼分析)UI原始碼
- Kotlin 1.4.0-RC協程除錯Kotlin除錯
- 【譯】使用kotlin協程提高app效能KotlinAPP