L'histoire de RxJava souffrant de NoSuchElementException

Si flatMapSingle () est utilisé lors de la connexion Flowable ou Maybe à Single, NoSuchElementException peut se produire.

Lors de la connexion d'un Single à un flux où Complete peut s'écouler, si Complete s'écoule réellement, il ne peut pas être traité par Single et une exception volera, et l'application mourra telle quelle. Normalement, RxJava fait un bon travail de connexion de Flowable à Single. En premier lieu, je ne peux pas connecter Single à Completable. Cependant, flatMapSingle () se connectera sans aucun problème, vous devez donc utiliser flatMapSingleElement () à la place. Il n'y a pas d'erreurs de compilation, pas de journaux d'erreurs, pas d'avertissements IDE, mais nous devons être conscients que nous faisons quelque chose de bizarre.

De côté

Si vous écrivez un processus qui connecte des processus asynchrones avec flatMap et les connecte, vous sentirez que Rx est une monade de processus asynchrones, et il y a un mérite que vous ressentirez que vous comprenez parfaitement le type fonctionnel. Au contraire, en utilisant flatMap ou andThen, je me demande si je peux comprendre la monade avec ça comme indice ... j'espère ...

Recommended Posts

L'histoire de RxJava souffrant de NoSuchElementException
L'histoire de la montée de Spring Boot de la série 1.5 à la série 2.1 part2
[Édition Java] Histoire de la sérialisation
L'histoire de @ViewScoped dévore la mémoire
[Challenge CircleCI from 0] Apprenez les bases de CircleCI
L'histoire de la mise à jour du Docker Container de Sonar Qube
L'histoire de l'écriture de Java dans Emacs
Trouvez la différence à partir d'un multiple de 10
L'histoire du passage d'Amazon RDS pour MySQL à Amazon Aurora Serverless
L'histoire de l'acquisition de Java Silver en deux mois de totalement inexpérimenté.
Le contenu de useBodyEncodingForURI a-t-il changé par rapport à Tomcat8?
L'histoire de la comparaison de chaînes de bas niveau en Java
L'histoire de la fabrication d'un Othello ordinaire à Java
L'histoire de l'apprentissage de Java dans la première programmation
Une histoire sur la compatibilité d'un Dockerfile existant avec le GPU
L'histoire du réglage de l'application Android avec libGDX
L'histoire de l'ajout du dernier Node.js à DockerFile
L'histoire de l'initialisation de Money :: Currency pendant les tests
ArrayList et le rôle de l'interface vu depuis List
Volume 3 types de Docker Compose considérés à partir de l'objectif
Comment écrire Scala du point de vue de Java
À propos de l'utilité des monades dans une perspective orientée objet
L'histoire de la création d'un proxy inverse avec ProxyServlet
L'histoire d'une exception d'état illégale dans Jetty.
Extraire un élément spécifique de la liste des objets
Un record d'étude du Spring Framework à partir de zéro
L'histoire de la création de Dr.Orchid avec LINE BOT
L'histoire de la création de DTO, semblable à Dao avec Java, SQLite
Le monde de Clara-Rules (2)
Jugement du calendrier
Le monde de Clara-Rules (4)
Le monde de Clara-Rules (3)
Le monde de Clara-Rules (5)
L'idée du tri rapide
L'idée de jQuery
Accédez à l'abréviation à partir de 5 exemples de listes Java en italique
20190803_Java & k8s sur Azure L'histoire d'aller au festival
Comment obtenir les informations les plus longues de Twitter à partir du 12/12/2016
De l'habitude de créer des objets de valeur pour une compréhension orientée objet
[Résumé des livres techniques] Résumé de la lecture "Apprendre Docker à partir des bases"
Agréger le nombre de personnes tous les 10 ans à partir de la liste <Personne>
L'histoire de la transmission de Java à Heroku à l'aide du pipeline BitBucket
[Java] Supprimer le nombre spécifié de caractères à la fin de StringBuilder
[Apache Tomcat] L'histoire de l'utilisation d'Apache OpenWebBeans pour activer CDI
27 ans Histoire de devenir ingénieur en développement grâce à une programmation inexpérimentée