Ich vermute, dass Sie über die RxJS -Operatoren wie: switchMap, ExhaustMap, concatMap und mergeMap (sogenannte Operatoren höherer Ordnung) gestolpert sind. Der allgemeine Glaube, dass man eine innere Observable von einer Callback-Funktion zurückgeben muss, die an die oben genannten Operatoren übergeben wird, ist nur halb wahr oder genauer gesagt zu einem Viertel wahr. Tatsächlich muss der Rückgabetyp der Zuordnungsfunktion , die den Operatoren höherer Ordnung bereitgestellt wird, vom Typ ObservableInput sein :
Wie Sie sehen können, ist die Rückgabe eines Observable nur eine von vier Möglichkeiten . In diesem Blogbeitrag werde ich einfache Beispiele mit dem SwitchMap- Operator mit unterschiedlichen Rückgabetypen präsentieren, die dem ObservableInput entsprechen.
Die abonnierbare Schnittstelle wird von der Observable -Klasse implementiert , daher hat ihre Instanz einen kompatiblen Typ:
Im obigen Beispiel wird ein Observable von der Callback-Funktion zurückgegeben, die an den SwitchMap- Operator übergeben wird. Es ist ein sehr häufiges und weithin bekanntes Muster in Angular-Anwendungen mit Diensten, die vom HttpClient -Dienst abhängen .
Wenn Sie die RxJS-Bibliothek außerhalb des Angular-Ökosystems verwenden, besteht die Möglichkeit, dass Sie HTTP-Anforderungen mit Hilfe der Fetch-API oder einer Bibliothek eines Drittanbieters mit Promise-basierter API (z . B. Axios ) stellen. Es ist vollkommen gültig, ein Promise von der Mapping-Funktion zurückzugeben, ohne es explizit mit der Funktion from in ein Observable parsen zu müssen :
Objekte mit einer Längeneigenschaft und indizierten Elementen werden Array-artig genannt (zB die Variable arguments oder eine NodeList- Instanz). Sie können sie mit Hilfe der statischen Methode Array.from in eine reguläre Array-Instanz konvertieren . Die Operatoren höherer Ordnung sind jedoch in der Lage, direkt auf solche Objekte einzuwirken:
Es gibt mehrere integrierte Iterables in JavaScript, nämlich: Array, String, Map und Set .
Array
Ich habe mich mit dem ObservableInput-Typ vertraut gemacht , als ich auf die Rückgabe einer Reihe von Aktionen aus dem Splitter-Effekt stieß :
Wenn Sie also mehr als eine Aktion als Antwort auf die empfangene Aktion senden müssen, können Sie einfach ein Array zurückgeben, das die erforderlichen Elemente enthält , die an den Stream gesendet werden .
Schnur
Der resultierende Stream gibt die Zeichenfolgenbuchstaben als aufeinanderfolgende Werte aus:
Karte
Die Karteneinträge werden im Observable ausgegeben:
Satz
Einzigartige Elemente des Sets werden zu den Werten des resultierenden Streams:
Es lohnt sich immer, einen kurzen Blick in die offizielle Dokumentation zu werfen, wenn Sie eine neue Bibliothek verwenden. Sie werden wahrscheinlich die meiste Zeit ein Observable von Callback-Funktionen der Operatoren höherer Ordnung zurückgeben, Sie sollten jedoch bedenken, dass der tatsächlich erforderliche Rückgabetyp der ObservableInput ist.
Live-Beispiel:
Ich hoffe, dir hat der Beitrag gefallen und du hast etwas Neues gelernt . Wenn ja, spendiert mir bitte einen Applaus
Begeben Sie sich auf eine spannende Reise voller Innovation und Erfolg und erschließen Sie das ungenutzte Potenzial dieser überraschenden No-Code-Plattformen. Lassen Sie mich eine Geschichte über Sapna erzählen, eine bemerkenswerte Unternehmerin.
Diese Woche erhielt ich eine E-Mail von einem Mitglied der täglichen E-Mail-Liste. Sie wollten wissen: Welche Ressourcen besuchen Sie täglich, wöchentlich und monatlich? Tolle Frage! Ich versuche gerne, einige Einblicke in meinen Arbeitsablauf und die wichtigsten Ressourcen, die ich verwende, mit Ihnen zu teilen.
Es ist ein strahlend goldener Morgen in den sanften Hügeln des Westens, während die ersten Sonnenstrahlen das gefrorene Gras auf den Ebenen erhellen. Eine Herde friedlicher Angus-Rinder, pechschwarz und massig, zeichnet sich vor dem Sonnenaufgang ab, während sie einen ausgetretenen Pfad entlang zu einem Ort geht, den sie alle gut kennen; die Frühstücksbar.
Wenn Sie eine Anfrage an facebook.com stellen, sucht Ihr Computer nach dem Domänennamen, um diesen in eine IP-Adresse zu übersetzen, damit Ihr Computer diese Verbindung herstellen kann.
Der Juckreiz in meiner Hand breitete sich aus, als ich mit dem örtlichen Buchhändler um ein weiteres Buch verhandelte. Dieses Buch würde wie die anderen, die ich kürzlich gekauft habe, seinen Thron auf meinem Stapel „To Be Read“ (TBR) finden; und trotzdem habe ich es gekauft.
Es fällt uns oft schwer, das umzusetzen, von dem wir wissen, dass es gut für uns ist. Von der Aussage, dass wir einen Lebensgefährten lieben, bis hin zur Erinnerung daran, wie ein Pirat zu reden – es wird immer diejenigen geben, die behaupten, dass ein Tag, eine Woche oder ein Monat voller Ereignisse nicht nötig sei, weil sie diese Dinge bereits tun.