【问题标题】:What is Deferred in Anko coroutines kotlin?Anko coroutines kotlin 中的 Deferred 是什么?
【发布时间】:2017-12-01 08:33:40
【问题描述】:

在 kotlin 的 Anko 协程库中,其中有一个功能 bg() 可以轻松地在后台线程上执行您的代码。在那个返回类型中是 Deferred。那么什么是延迟

参考链接

(1) https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Deferred.kt

(2) https://github.com/Kotlin/anko/wiki/Anko-Coroutines#bg

  fun getData(): Data { ... }
  fun showData(data: Data) { ... }

  async(UI) {
      val data: Deferred<Data> = bg {
      // Runs in background
      getData()
      }

      // This code is executed on the UI thread
      showData(data.await())
  }

【问题讨论】:

  • Deferred 是 Kotlin 特定的未来/承诺。那有什么问题呢?
  • 我的问题是什么是延迟?

标签: android kotlin anko kotlin-coroutines


【解决方案1】:

如果你原谅我,我会从问题的第一个链接中引用Deferred 类文档中的第一句话开始:

延迟值是一个非阻塞可取消的未来。

事实上,deferred 是 futurepromise 的同义词 (see this wikipedia article)。

Deferred 类是 kotlinx-coroutines 项目的一部分,该项目为 Kotlin 协程提供库支持。开始了解更多信息的推荐方法是阅读此guide

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 2020-07-12
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2019-03-12
    • 2018-04-29
    • 2018-04-17
    • 1970-01-01
    相关资源
    最近更新 更多