diff --git a/database/mongodb/mongodb-async/src/main/kotlin/cn/tursom/mongodb/async/AsyncMongoOperator.kt b/database/mongodb/mongodb-async/src/main/kotlin/cn/tursom/mongodb/async/AsyncMongoOperator.kt index 9b54ac9..1096b34 100644 --- a/database/mongodb/mongodb-async/src/main/kotlin/cn/tursom/mongodb/async/AsyncMongoOperator.kt +++ b/database/mongodb/mongodb-async/src/main/kotlin/cn/tursom/mongodb/async/AsyncMongoOperator.kt @@ -173,14 +173,14 @@ class AsyncMongoOperator( } } - override suspend fun hasNext(): Boolean = if (cache.isEmpty()) { - suspendCoroutine { - notify.set(it) - subscription.request(bufSize.toLong()) + override suspend fun hasNext(): Boolean { + if (cache.isEmpty() && !compete) { + suspendCoroutine { + notify.set(it) + subscription.request(bufSize.toLong()) + } } - !compete - } else { - !compete + return cache.isNotEmpty() } } publisher.subscribe(subscriber)