‫Kursleiter: Und jetzt, um
‫den Abschnitt abzuschließen, möchte ich Ihnen einen
‫netten Trick zeigen, wie wir im Grunde viele Versprechen gleichzeitig ausführen können.
‫Nehmen wir also an, wir wollten eigentlich drei
‫zufällige Hundebilder erhalten und nicht nur eines.
‫Wir könnten so etwas machen.
‫Also einfach auf D3API-Aufrufe warten, einen nach dem anderen.
‫Aber warum sollten wir eigentlich den zweiten
‫API-Aufruf auf den
‫ersten warten lassen und den dritten auf den zweiten?
‫Das würde nur unnötige Wartezeiten verursachen,
‫wenn wir all
‫diese Versprechen gleichzeitig ausführen könnten.
‫Lassen Sie mich Ihnen zeigen, wie wir das tun können.
‫Die Lösung wird also nicht so aussehen,
‫sondern wir werden an dieser Stelle nicht auf
‫ein Versprechen warten, sondern das Versprechen stattdessen
‫in einer Variablen speichern.
‫Auch hier möchten wir nun das
‫Versprechen speichern und nicht den aufgelösten Wert des Versprechens.
‫Also, nennen wir das hier, Ergebnis eins, pro,
‫was für Versprechen steht.
‫Denken Sie also daran, dass dieser hier ein Versprechen zurückgibt.
‫Okay, und wenn wir nicht darauf
‫warten, speichern wir einfach das Promise in der Variablen und
‫nicht den aufgelösten Wert.
‫Also machen wir das hier noch zwei Mal.
‫Also eines für jedes beliebige Bild, das wir wollen.
‫Okay, und so haben wir drei Versprechen.
‫Um nun tatsächlich die aufgelösten Werte,
‫also die
‫drei Bilder, zu erhalten, erstellen wir eine neue Variable und
‫warten darauf, alles zu versprechen, okay.
‫Und in den Versprechenspunkt geben wir eine Reihe von Versprechen weiter.
‫Und das wird Res One Pro,
‫Res Zwei Pro und Res Drei Pro sein.
‫Okay, wieder haben wir diese drei Promises und diese
‫drei Variablen und können ein Array mit
‫diesen drei Promises an Promise Dot all übergeben.
‫Und wenn wir das dann abwarten, werden diese
‫drei Versprechen im Grunde alle gleichzeitig
‫ausgeführt und dann in drei
‫aufgelösten Werten in diesem All-Array hier gespeichert, okay.
‫Werfen wir also einen
‫Blick darauf, all das variabel, okay.
‫Das hier wird uns jetzt wahrscheinlich einen Fehler
‫geben, aber das macht nichts.
‫Ja genau.
‫Aber was mich hier interessiert, ist zu sehen,
‫ob die All-Variable und was ich Ihnen zeigen möchte, ist,
‫dass es sich tatsächlich um ein Array handelt, aber ich sehe, dass es hier
‫viel zu groß ist, weil es
‫all diese Informationen über all diese http-Anfragen enthält .
‫Wir werden uns
‫diese Art von Sachen später hier ansehen und Abschnitte notieren.
‫Ich kann einfach nicht, ah, hier ist der Anfang.
‫Sie sehen also, dass es tatsächlich mit dieser Klammer beginnt, was bedeutet,
‫dass es sich um ein Array handelt, okay.
‫Aber was uns hier interessiert, ist, dass wir
‫in jedem dieser Elemente an der
‫Body-Dot-Botschaft interessiert sind, richtig?
‫Das haben wir früher aus jedem
‫der Ergebnisse gelesen.
‫Also müssen wir jetzt ein
‫neues Array erstellen, das nur diese Body-Dot-Nachrichten enthält.
‫Okay, sinnvoll?
‫Und lassen Sie uns dafür Karten verwenden.
‫Also Bilder und alle
‫Punktkarten.
‫Und ich hoffe, dass Sie mit all diesen Array-Methoden
‫vertraut sind.
‫Maps durchlaufen also das Array all und den
‫Sicherheitswert, den wir in jeder Iteration zurückgeben, in
‫ein neues Array namens images, okay.
‫Und der aktuelle Wert in
‫jeder Iteration heißt Element und was wir
‫zurückgeben, ist Element Punkt Körper Punkt Nachricht.
‫Okay, das ist grundlegendes
‫JavaScript, und Sie sollten mit solchen Dingen inzwischen vertraut sein.
‫In Ordung.
‫Also, wenn wir uns jetzt Bilder anschauen, dann sollte das,
‫naja, wo ist das?
‫Oh, alle Punktkarten, oh, natürlich sind es keine Karten, es
‫sind nur Karten, sorry dafür.
‫Und hier haben wir nun tatsächlich unser Array
‫mit diesen drei Bildern.
‫Also, großartig, es sind drei verschiedene Bilder.
‫Und jetzt müssen
‫wir sie nur noch in unserer Datei speichern.
‫Im Moment erhalten wir also immer noch res als nicht definiert
‫und das liegt daran, dass wir immer noch versuchen,
‫res dot body dot message zu schreiben.
‫Aber res existiert nicht, deshalb bekommen wir diesen Fehler.
‫Stattdessen wollen wir hier einen
‫String schreiben, der im Grunde diese drei Strings enthält.
‫Was wir also tun, ist, dass Bilder nicht zusammengefügt werden.
‫Und wir werden uns ihnen
‫anschließen, indem wir ein neues Linienzeichen dazwischen setzen.
‫Also umgekehrter Schrägstrich n bedeutet eine neue Zeile, okay.
‫Und damit werden diese drei Saiten im Grunde genommen,
‫jede in eine neue Zeile, in Ordnung.
‫Also join, verbindet die drei Strings zu einem
‫neuen String und verbindet sie mit einem neuen Zeilenzeichen dazwischen.
‫Okay, und das sollte den Zweck erfüllen.
‫Sparen Sie.
‫Und ja, jetzt heißt es zufälliges Punktbild in Datei gespeichert,
‫keine Fehler mehr.
‫Werfen wir einen Blick darauf, Punktbild, und es tat, los geht's.
‫Und wir haben drei verschiedene Bilder.
‫Erst dieser, dann dieser Typ und schließlich der dritte.
‫Also drei verschiedene Hundebilder.
‫Und wir haben sie alle
‫gleichzeitig bekommen, indem wir Promise Dot All verwendet haben, okay.
‫Ich hoffe, das war sinnvoll und ich hoffe tatsächlich, dass dieser
‫gesamte Abschnitt für Sie sinnvoll war, denn von nun
‫an gehe ich davon aus, dass Sie
‫die Grundlagen von Versprechen und einer einzigen Wartezeit kennen.
‫Und wir werden sie
‫für den Rest des Kurses verwenden,
‫vorausgesetzt, Sie wissen, was wir tun, okay.
‫Und Node unterstützt tatsächlich seit
‫seiner Version sieben Punkt sechs ein einziges
‫Warten, sodass wir es jetzt problemlos verwenden können.