So ist die Unterscheidung zu sein scheint: defer
ist gut, wenn Sie etwas, das/gibt eine beobachtbare schafft bereits, aber Sie wollen es nicht zu diesem Prozess geschehen bis zum Abonnement.
create
ist gut, wenn Sie einen asynchronen Prozess manuell umbrechen und eine Observable erstellen müssen. Diese Schöpfung ist auch bis zum Abonnement zurückgestellt.
Um es anders auszudrücken:
defer
ist ein Operator, der latente Zusammensetzung von beobachtbaren Sequenzen ermöglicht.
create
ist eine benutzerdefinierte Implementierung der beobachtbaren Sequenz (wobei die Erstellung bis zur Subskription aufgeschoben wird).
Also, wenn Sie eine Situation, wo Sie just
verwenden könnten ein Observable
von einigen Ergebnissen/Wert zu schaffen, oder Sie haben eine Netzwerk-API-Schicht, die ein Observable
der Anforderung zurück, aber Sie wollen nicht, dass Anforderung ab Kick bis zum Abonnement. defer
wäre für diese Szenarien gut.
Wenn Sie ein Netzwerk-API-Schicht haben, dass nicht Rückkehr ein Observable
für eine Anforderung, die aber Sie brauchen eine Observable
-Schnittstelle, können Sie create
verwenden. Diese Observable
Sequenz würde immer noch nicht bis zum Abonnement erstellt werden. Wenn Sie möchten, dass der Netzwerkanruf unabhängig vom Abonnement gestartet wird, verwenden Sie einen anderen Mechanismus, z. B. Subject
, der möglicherweise wiederholt wird.