我正在尝试为图像创建索引。我认为这很简单:
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完成时,是否可以注册要调用的函数? 最佳答案
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)
}