Wenn flatMapSingle () beim Verbinden von Flowable oder Maybe mit Single verwendet wird, kann eine NoSuchElementException auftreten.
Wenn Sie eine Single mit einem Stream verbinden, in dem Complete fließen kann, kann Complete, wenn Complete tatsächlich fließt, nicht von Single verarbeitet werden. Eine Ausnahme wird ausgelöst, und die Anwendung stirbt unverändert. Normalerweise kann RxJava Flowable gut mit Single verbinden. Erstens kann ich Single nicht mit Completable verbinden. FlatMapSingle () stellt jedoch problemlos eine Verbindung her, sodass Sie stattdessen flatMapSingleElement () verwenden müssen. Es gibt keine Kompilierungsfehler, keine Fehlerprotokolle, keine IDE-Warnungen, aber wir müssen uns bewusst sein, dass wir etwas Seltsames tun.
Wenn Sie einen Prozess schreiben, der asynchrone Prozesse mit flatMap verbindet und verbindet, werden Sie das Gefühl haben, dass Rx eine Monade von asynchronen Prozessen ist, und es gibt einen Vorteil, dass Sie das Gefühl haben, den Funktionstyp vollständig zu verstehen. Im Gegenteil, wenn ich flatMap oder andThen verwende, frage ich mich, ob ich die Monade damit als Hinweis verstehen kann ... Ich hoffe ...