Cet article provient de My RxSwift Summary ①, My RxSwift Summary② C'est une continuation.
ʻObservable, ʻObservable sequence
, sequence
, stream
Ce sont tous des mots qui ont la même signification et qui sont ** flux d'événements **. (Dans RxSwift, «séquence» est souvent utilisé)
(Citation)
*** Tout est une séquence ***.
L'événement comprend ici une valeur numérique, une instance d'une classe définie par elle-même, un geste de tapotement, etc.
Cet événement est défini par ʻEnum` ci-dessous.
Event.swift
public enum Event<Element> {
case next(Element)
case error(Error)
case completed
}
Que se passe-t-il dans chaque cas
, ʻObservable (séquence)Si vous le regardez avec le diagramme en marbre qui montre ce qui suit, ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595260/cba274d6-319e-2902-494c-adc3ce7d3cf7.png) Dans le cas de
next, ʻObservable
émet l'événement suivant. Il continue également d'émettre des événements jusqu'à ce que ʻerror / completed` soit appelé.
En cas d '«erreur», «Erreur» est émise et «observable» arrête l'émission de l'événement.
Dans le cas de «terminé», «observable» est arrêté et l'événement est arrêté.
ʻSubscribe est requis pour utiliser les événements émis par Observable
. (ʻObservable n'émet pas d'événement ou de processus avec ʻoperator
jusqu'à ce qu'il soit S'abonner
)
À ce stade, un «gestionnaire» peut être ajouté pour chaque type d'événement.
De plus, s'il s'agit de «next», l'instance d'erreur peut être transmise au «handler» si c'est «Element», «error ».
Considérez l'Observable montré dans le diagramme de marbre ci-dessous
Example.swift
let one = "1"
let two = "2"
let three = "3"
let observable = Observable.of(one, two, three)
observable.subscribe { event in
print(event)
}
production
next(1)
next(2)
next(3)
completed
Si vous vous abonnez, vous pourrez gérer les événements en séquence. Lorsque vous «l'imprimez», «next» s'écoule 3 fois comme la sortie, et enfin «terminé» ce qui signifie l'arrêt des flux «observables».
Recommended Posts