2

在 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())
  }
4

1 回答 1

6

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

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

事实上,deferred 是futurepromise的同义词(参见这篇维基百科文章)。

该类Deferredkotlinx-coroutines为 Kotlin 协程提供库支持的项目的一部分。开始了解更多信息的推荐方法是阅读本指南

于 2017-06-28T07:54:44.033 回答