1

我正在尝试在创建图像时对其进行索引。我认为这很容易:

val saveLocation = CompletableDeferred<String>()
saveLocation.onAwait { loc:String ->
    MediaScannerConnection.scanFile(applicationContext, arrayOf(loc), null, null)
}

但它说Expression onAwait of type SelectClause1<String> cannot be invoked as a function所以也许我用错了?有没有办法注册 CompletableDeferred 完成时要调用的函数?

4

1 回答 1

3

onAwait是一个返回的属性SelectClause1<T>

所以你会使用这样的东西

val clause = saveLocation.onAwait
clause.registerSelectClause1( // your args here)

但是,如果您想要延迟的结果,为什么不启动协程并调用await

launch {
  val result = saveLocation.await()
  MediaScannerConnection.scanFile(applicationContext, arrayOf(result), null, null)
}
于 2018-02-24T09:06:05.490 回答