我有一个异步调用,我在其中放置了emitter.onNext() 的回调监听器。这个异步调用在 for-in 中(我知道列表大小)。我想在 onNext() 中发出最后一个元素时调用 onComplete()。
for (anItem in itemList) {
eventsQuery.get()
.addOnCompleteListener { task ->
if (task.isComplete) {
emitter.onNext(myItemFromTask)
if(count == itemList.size){
emitter.onComplete()
}
}
}
}
计数,因为它是一个异步调用,没有以正确的方式递增,并且永远不会调用 onComplete()。
处理这种情况的正确方法是什么?我需要 onComplete 来显示视图并删除加载/进度条。