web-dev-qa-db-fra.com

quelle est la différence entre do (onNext :) et subscribe (onNext :)?

Je suis nouveau dans RxSwift, je ne comprends pas quelle est la différence entre do(onNext:) et subscribe(onNext:).

Je l'ai recherché sur Google, mais je n'ai pas trouvé de bonnes ressources pour expliquer la différence.

11
behrad

Au début d'une chaîne observable à froid, il existe une fonction qui génère des événements, par exemple la fonction qui initie une requête réseau.

Cette fonction de générateur sera pas appelée à moins que l'Observable ne soit abonné (et par défaut, elle sera appelée à chaque fois que l'observable sera abonné.) Donc, si vous ajoutez une do(onNext:) à votre chaîne observable, la fonction ne sera pas appelée et l'action qui génère les événements ne sera pas lancée. Vous devez ajouter une subscribe(onNext:) pour que cela se produise.

(Les internes réels sont un peu plus complexes que la description ci-dessus, mais assez proches pour cette explication.)

15
Daniel T.