Dieser Artikel stammt aus Meine RxSwift-Zusammenfassung ①, Meine RxSwift-Zusammenfassung② Es ist eine Fortsetzung.
Observable
, Observable Sequence
, Sequence
, Stream
Dies sind alle Wörter, die die gleiche Bedeutung haben und ** Ereignisfluss ** sind. (In RxSwift wird häufig "Sequenz" verwendet.)
(Zitat)
*** Alles ist eine Sequenz ***.
Das Ereignis enthält hier einen numerischen Wert, eine Instanz einer von sich selbst definierten Klasse, eine Tippgeste und dergleichen.
Dieses Ereignis wird durch die folgende "Aufzählung" definiert.
Event.swift
public enum Event<Element> {
case next(Element)
case error(Error)
case completed
}
Was passiert in jedem Fall? Beobachtbar (Sequenz) Wenn Sie es mit dem Marmordiagramm betrachten, das Folgendes zeigt, Für "next" gibt "Observable" das nächste Ereignis aus. Es werden auch weiterhin Ereignisse ausgegeben, bis "error / complete" aufgerufen wird.
Im Falle eines "Fehlers" wird "Fehler" ausgegeben, und "beobachtbar" gibt keine Ereignisse mehr aus.
Wenn "abgeschlossen", stoppt "beobachtbar" und löst das Auslösen des Ereignisses aus.
Um die von "Observable" ausgegebenen Ereignisse nutzen zu können, müssen Sie "abonnieren". (Observable
gibt kein Ereignis oder keinen Prozess mit operator
aus, bis es Subscribe
ist.)
Zu diesem Zeitpunkt kann für jeden Ereignistyp ein "Handler" hinzugefügt werden.
Wenn es "next" ist, können Sie die Fehlerinstanz auch an "element" übergeben, und wenn es "error" ist, können Sie die Fehlerinstanz an "handler" übergeben.
Betrachten Sie das im Marmordiagramm unten gezeigte Observable
Example.swift
let one = "1"
let two = "2"
let three = "3"
let observable = Observable.of(one, two, three)
observable.subscribe { event in
print(event)
}
Ausgabe
next(1)
next(2)
next(3)
completed
Wenn Sie sich anmelden, können Sie Ereignisse nacheinander behandeln. Wenn Sie es "drucken", fließt "next" dreimal wie die Ausgabe und schließlich "abgeschlossen", was bedeutet, dass "beobachtbare" Flüsse gestoppt werden.
Recommended Posts