Voici court extrait de code:RxJava2: onComplete pas appelé avec flatMapIterable
val subject = BehaviorSubject.createDefault(emptyList<Int>())
subject.onNext(Arrays.asList(1, 2, 3))
subject.flatMapIterable { list: List<Int> -> list }
.subscribeBy(
onNext = { l("on next", it) },
onComplete = { l("on complete") }
)
Pourquoi onComplete
ne pas appeler ici? Qu'est-ce que je devrais faire pour travailler ce code? Parce que dans le code d'origine, je ne peux pas utiliser la méthode .toList()
.
Pourquoi utilisez-vous un 'BehaviorSubject'? Vous devez appeler 'onComplete()' dessus explicitement. – akarnokd
Pourquoi 'onComplete' serait appelé ici? Votre sujet n'a pas encore fini d'émettre des objets - vous pouvez toujours appeler 'onNext' avec des objets. – zsmb13
@ zsmb13 L'appel de onCompete est donc le même que dans subject? Je pensais qu'il sera redéfini par observable dans flatMapIterable. –