﻿1
00:00:01,140 --> 00:00:02,740
‫-: Lassen Sie uns nun

2
00:00:02,740 --> 00:00:06,790
‫über die Probleme sprechen, die auftreten können, wenn wir zu viele Callback-Funktionen verwenden.

3
00:00:06,790 --> 00:00:07,650
‫Und dazu

4
00:00:07,650 --> 00:00:09,760
‫machen wir ein kleines Beispiel, um

5
00:00:09,760 --> 00:00:11,440
‫diesen Effekt zu veranschaulichen.

6
00:00:11,440 --> 00:00:14,620
‫Denken Sie jetzt daran, dass Sie, wenn Sie bereits

7
00:00:14,620 --> 00:00:17,130
‫mit Promises und Async/Await und im Allgemeinen

8
00:00:17,130 --> 00:00:18,590
‫mit Asynchronous Java Script

9
00:00:18,590 --> 00:00:21,180
‫vertraut sind, diesen Abschnitt einfach überspringen und

10
00:00:21,180 --> 00:00:23,860
‫alle Videos als abgeschlossen markieren können, damit

11
00:00:23,860 --> 00:00:26,500
‫Sie immer noch zu 100 Prozent fertig

12
00:00:26,500 --> 00:00:27,730
‫sind Kurs.

13
00:00:27,730 --> 00:00:28,910
‫Aber wenn Sie alles

14
00:00:28,910 --> 00:00:30,350
‫über Asynchronous Java Script und

15
00:00:30,350 --> 00:00:33,283
‫dessen Verwendung in OJS erfahren möchten, dann lassen Sie uns weitermachen.

16
00:00:35,020 --> 00:00:35,853
‫Also fahren

17
00:00:35,853 --> 00:00:38,670
‫Sie fort und holen Sie sich die Starterdateien für dieses

18
00:00:38,670 --> 00:00:39,940
‫Projekt aus den Kursdateien.

19
00:00:39,940 --> 00:00:41,510
‫Ich habe es bereits hier auf meinem

20
00:00:41,510 --> 00:00:42,940
‫Desktop, also diesen Ordner hier.

21
00:00:42,940 --> 00:00:44,850
‫Und es ist nur diese

22
00:00:44,850 --> 00:00:47,950
‫Datei drin, das ist alles, was wir brauchen, um loszulegen.

23
00:00:47,950 --> 00:00:50,410
‫Und ich habe es hier in VS Code bereits geöffnet und

24
00:00:50,410 --> 00:00:51,680
‫was wir zu Beginn tun

25
00:00:51,680 --> 00:00:54,680
‫werden, ist einfach eine NX zu erstellen. JS-Datei.

26
00:00:54,680 --> 00:00:56,220
‫Genau wie vorher.

27
00:00:56,220 --> 00:00:58,130
‫Was wir jetzt tun werden,

28
00:00:58,130 --> 00:00:59,920
‫ist dies, wir werden

29
00:00:59,920 --> 00:01:02,320
‫diese Hundedatei hier verwenden, diese Textdatei.

30
00:01:02,320 --> 00:01:06,040
‫Und von hier aus werden wir die Hunderasse lesen.

31
00:01:06,040 --> 00:01:08,570
‫Und dann machen wir eine HTTP-Anfrage,

32
00:01:08,570 --> 00:01:12,020
‫um ein zufälliges Bild eines Hundes dieser Rasse zu erhalten.

33
00:01:12,020 --> 00:01:14,790
‫Und dann speichern Sie dieses zufällige Bild

34
00:01:14,790 --> 00:01:16,440
‫in einer anderen Textdatei.

35
00:01:16,440 --> 00:01:18,410
‫Es ist also ein

36
00:01:18,410 --> 00:01:20,860
‫dreistufiger Prozess und all dies beinhaltet Callback-Funktionen.

37
00:01:20,860 --> 00:01:23,330
‫Und am Ende werden wir das Problem sehen,

38
00:01:23,330 --> 00:01:25,130
‫das wir haben, wenn wir all

39
00:01:25,130 --> 00:01:26,610
‫diese Callback-Funktionen ineinander verwenden.

40
00:01:26,610 --> 00:01:27,443
‫Okay?

41
00:01:27,443 --> 00:01:29,360
‫Dafür verwenden wir eine

42
00:01:29,360 --> 00:01:31,140
‫recht beliebte API.

43
00:01:31,140 --> 00:01:33,670
‫Was eher eine lustige API ist.

44
00:01:33,670 --> 00:01:34,980
‫Aber für solche Dinge ist

45
00:01:34,980 --> 00:01:36,620
‫es eine gute Idee, es zu verwenden.

46
00:01:36,620 --> 00:01:39,800
‫Es ist also der HUND. CEO, API.

47
00:01:39,800 --> 00:01:42,140
‫Klicken Sie hier einfach auf Dog API.

48
00:01:42,140 --> 00:01:43,540
‫Dann

49
00:01:43,540 --> 00:01:45,360
‫hier die Dokumentation.

50
00:01:45,360 --> 00:01:48,060
‫Und was wir wollen, ist einen zufälligen Hund

51
00:01:48,060 --> 00:01:49,500
‫oder eine bestimmte Rasse.

52
00:01:49,500 --> 00:01:52,090
‫Klicken Sie hier nach Rasse.

53
00:01:52,090 --> 00:01:52,993
‫Und

54
00:01:54,790 --> 00:01:58,620
‫hier unten ist der API-Endpunkt, den wir erreichen werden.

55
00:01:58,620 --> 00:02:00,293
‫Es ist also diese URL hier.

56
00:02:01,750 --> 00:02:03,530
‫Wenn Sie also auf "hier abrufen"

57
00:02:03,530 --> 00:02:05,580
‫klicken, erhalten Sie jedes Mal ein neues Bild, okay?

58
00:02:05,580 --> 00:02:06,413
‫In

59
00:02:06,413 --> 00:02:08,670
‫diesem Abschnitt werden wir also HTTP-Anforderungen ausführen,

60
00:02:08,670 --> 00:02:10,420
‫genau wie wir es im

61
00:02:10,420 --> 00:02:11,850
‫vorherigen Abschnitt kennengelernt haben.

62
00:02:11,850 --> 00:02:12,683
‫Okay.

63
00:02:12,683 --> 00:02:14,090
‫Alles, was wir

64
00:02:14,090 --> 00:02:17,741
‫tun müssen, ist, eine HTTP-Anfrage an diese URL zu erstellen, und

65
00:02:17,741 --> 00:02:19,890
‫dann erhalten wir ein Bild zurück.

66
00:02:19,890 --> 00:02:20,780
‫Okay?

67
00:02:20,780 --> 00:02:22,820
‫Aber für den Moment beginnen wir eigentlich mit

68
00:02:22,820 --> 00:02:25,290
‫einem Teil, in dem wir die Datei lesen und den Inhalt

69
00:02:25,290 --> 00:02:26,143
‫dieser Datei abrufen.

70
00:02:27,900 --> 00:02:31,980
‫Also in unserem Index. js benötigen wir wieder das

71
00:02:31,980 --> 00:02:33,440
‫Dateisystempaket oder -modul.

72
00:02:33,440 --> 00:02:34,273
‫Also

73
00:02:38,260 --> 00:02:40,743
‫FS und benötige hier das FS-Modul.

74
00:02:41,720 --> 00:02:44,960
‫Und genau wie zuvor machen wir fs. readfile und

75
00:02:44,960 --> 00:02:47,320
‫wir machen die asynchrone Version.

76
00:02:47,320 --> 00:02:48,153
‫Okay.

77
00:02:48,153 --> 00:02:51,150
‫Denken Sie daran, dass wir hier den Speicherort der Datei übergeben

78
00:02:51,150 --> 00:02:52,480
‫und dann eine Rückruffunktion,

79
00:02:52,480 --> 00:02:55,623
‫die aufgerufen wird, sobald wir mit dem Lesen der Datei fertig sind.

80
00:02:56,800 --> 00:02:58,420
‫Also haben wir hier unseren Vorlagenstring.

81
00:02:58,420 --> 00:03:01,733
‫Und dann verwenden wir einen Dirname, genau wie zuvor.

82
00:03:02,820 --> 00:03:04,670
‫Also der Name des aktuellen Verzeichnisses.

83
00:03:07,778 --> 00:03:08,963
‫/Hund. TXT.

84
00:03:11,040 --> 00:03:13,260
‫Okay und dann unsere Callback-Funktion,

85
00:03:13,260 --> 00:03:16,303
‫deren erstes Argument wie immer ein Fehler ist.

86
00:03:19,490 --> 00:03:22,750
‫Und dann die Daten, die tatsächlich in der Datei enthalten sind.

87
00:03:22,750 --> 00:03:23,940
‫Und nur um sicher zu gehen,

88
00:03:23,940 --> 00:03:25,393
‫loggen wir es natürlich in die Konsole ein.

89
00:03:27,340 --> 00:03:28,530
‫Also noch ein

90
00:03:28,530 --> 00:03:31,893
‫Template-String, damit wir unsere Daten hier schön ausgeben können.

91
00:03:33,200 --> 00:03:34,200
‫Okay.

92
00:03:34,200 --> 00:03:36,040
‫Starten Sie das Terminal hier

93
00:03:36,040 --> 00:03:37,620
‫und bringen Sie es

94
00:03:37,620 --> 00:03:38,870
‫ein wenig hoch.

95
00:03:40,120 --> 00:03:42,830
‫Und so verwende ich Nodemon genau wie zuvor

96
00:03:42,830 --> 00:03:44,893
‫und dann index. js.

97
00:03:46,220 --> 00:03:48,400
‫Okay, Rasse ist Retriever.

98
00:03:48,400 --> 00:03:51,270
‫Und genau das haben wir hier in dieser Datei.

99
00:03:51,270 --> 00:03:56,053
‫Okay, Retriever ist die Rasse, nach der wir suchen werden.

100
00:03:57,390 --> 00:03:59,050
‫In dieser Rückruffunktion

101
00:03:59,050 --> 00:04:01,520
‫möchten wir nun die HTTP-Anforderung ausführen, über

102
00:04:01,520 --> 00:04:03,340
‫die wir gerade gesprochen haben.

103
00:04:03,340 --> 00:04:05,360
‫Und es gibt tatsächlich Möglichkeiten, dies

104
00:04:05,360 --> 00:04:06,660
‫mit nativen Modulen

105
00:04:06,660 --> 00:04:07,980
‫ohne JS zu tun.

106
00:04:07,980 --> 00:04:10,850
‫Aber es ist einfacher, dafür einfach ein NPM-Paket zu verwenden.

107
00:04:10,850 --> 00:04:12,100
‫Und es gibt wieder

108
00:04:12,100 --> 00:04:14,560
‫viele, aber der, den wir verwenden werden, heißt Super Agent.

109
00:04:14,560 --> 00:04:16,750
‫Später werden wir einen anderen verwenden,

110
00:04:16,750 --> 00:04:20,710
‫aber dafür ist Super Agent im Moment völlig in Ordnung, okay.

111
00:04:20,710 --> 00:04:24,140
‫Und um dieses Modul tatsächlich mit NPM

112
00:04:24,140 --> 00:04:27,410
‫herunterzuladen, erstellen wir zunächst unsere Paket-Jason-Datei.

113
00:04:27,410 --> 00:04:28,940
‫Erinnere dich daran?

114
00:04:28,940 --> 00:04:31,120
‫Lassen Sie mich das einfach beenden

115
00:04:31,120 --> 00:04:32,703
‫und NPM darin machen.

116
00:04:33,780 --> 00:04:36,423
‫Und drücken Sie einfach die Eingabetaste bei all diesen.

117
00:04:37,340 --> 00:04:38,460
‫Dies ist nicht wirklich wichtig.

118
00:04:38,460 --> 00:04:39,293
‫Okay.

119
00:04:39,293 --> 00:04:40,920
‫Wir wollen nur dieses Paket. jason-Datei,

120
00:04:40,920 --> 00:04:43,370
‫damit sie tatsächlich den Namen des von uns

121
00:04:43,370 --> 00:04:44,290
‫verwendeten Pakets enthält.

122
00:04:44,290 --> 00:04:47,130
‫Das machen wir immer, wenn wir ein neues Projekt starten.

123
00:04:47,130 --> 00:04:48,630
‫Und jetzt NPM installieren, oder

124
00:04:48,630 --> 00:04:52,240
‫wir können einfach das I verwenden, das gleich ist und dann den

125
00:04:52,240 --> 00:04:53,490
‫Namen des Pakets.

126
00:04:53,490 --> 00:04:55,023
‫Also nichts neues da oder?

127
00:04:58,510 --> 00:04:59,840
‫Um dieses Paket

128
00:04:59,840 --> 00:05:01,270
‫nun zu verwenden, erstellen wir

129
00:05:01,270 --> 00:05:04,200
‫eine neue Variable, die dann die Super Agent-Funktion enthält,

130
00:05:04,200 --> 00:05:06,473
‫die uns dieses Modul zur Verfügung stellt.

131
00:05:16,410 --> 00:05:19,350
‫Lassen Sie uns nun fortfahren und diese Super Agent-Funktion

132
00:05:19,350 --> 00:05:20,320
‫tatsächlich verwenden.

133
00:05:20,320 --> 00:05:22,180
‫Um eine Get-Anfrage auszuführen, haben

134
00:05:22,180 --> 00:05:24,363
‫wir einfach die Methode get verwendet.

135
00:05:25,400 --> 00:05:28,400
‫Also get und dann brauchen wir diese URL.

136
00:05:28,400 --> 00:05:31,860
‫Okay, das hier, das ich dir schon mal gezeigt habe.

137
00:05:31,860 --> 00:05:32,880
‫Kopieren Sie es

138
00:05:33,870 --> 00:05:34,970
‫einfach und fügen Sie es

139
00:05:35,980 --> 00:05:37,110
‫hier in eine Vorlagenzeichenfolge ein.

140
00:05:37,110 --> 00:05:39,870
‫Denn jetzt werden wir diese Rasse

141
00:05:39,870 --> 00:05:41,830
‫hier tatsächlich ersetzen.

142
00:05:41,830 --> 00:05:43,430
‫Okay, das wollen

143
00:05:43,430 --> 00:05:45,250
‫wir nicht, sondern verwenden

144
00:05:45,250 --> 00:05:47,840
‫es, das wir aus unserer Datei bekommen.

145
00:05:47,840 --> 00:05:49,920
‫In diesem Fall sind es also Daten.

146
00:05:49,920 --> 00:05:50,790
‫Richtig?

147
00:05:50,790 --> 00:05:51,750
‫Auf

148
00:05:51,750 --> 00:05:55,160
‫diese Weise können wir tatsächlich eine HTTP-Get-Anfrage ausführen.

149
00:05:55,160 --> 00:05:57,510
‫Um nun die Daten

150
00:05:57,510 --> 00:06:01,970
‫zu erhalten, müssen wir tatsächlich auch die Methode end verwenden.

151
00:06:01,970 --> 00:06:04,090
‫Und hier übergeben wir

152
00:06:04,090 --> 00:06:05,240
‫die Callback-Funktion.

153
00:06:07,210 --> 00:06:09,060
‫Es ist also wieder ein Fehler,

154
00:06:09,060 --> 00:06:10,500
‫zuerst zurückrufen und

155
00:06:10,500 --> 00:06:12,000
‫dann auch das Ergebnis übergeben.

156
00:06:12,900 --> 00:06:14,660
‫Lassen Sie uns also in

157
00:06:14,660 --> 00:06:15,920
‫dieser Funktion

158
00:06:15,920 --> 00:06:18,620
‫zunächst das Ergebnis in der Konsole protokollieren.

159
00:06:18,620 --> 00:06:21,920
‫Die Daten, die wir erhalten, befinden sich also in der Antwortvariablen.

160
00:06:21,920 --> 00:06:22,997
‫Also dieser hier.

161
00:06:22,997 --> 00:06:25,960
‫Und dann ist das der Körper.

162
00:06:25,960 --> 00:06:29,430
‫Hier ist also die eigentliche Reaktion.

163
00:06:29,430 --> 00:06:31,830
‫Okay, jetzt lassen Sie uns das testen.

164
00:06:32,780 --> 00:06:35,180
‫Und jetzt mit diesem Save hier ist es tatsächlich nach unten gegangen.

165
00:06:35,180 --> 00:06:36,420
‫Das liegt wiederum

166
00:06:36,420 --> 00:06:39,850
‫an der vorherigen Erweiterung, die wir früher eingerichtet haben.

167
00:06:39,850 --> 00:06:41,170
‫Und vielleicht haben Sie

168
00:06:41,170 --> 00:06:44,520
‫auch bemerkt, wie es die normalen Anführungszeichen, die ich hier hatte,

169
00:06:44,520 --> 00:06:45,560
‫durch diese doppelten

170
00:06:45,560 --> 00:06:48,810
‫Anführungszeichen ersetzt und auch das Semikolon hier oben eingefügt hat.

171
00:06:48,810 --> 00:06:50,610
‫Und tatsächlich haben wir es im

172
00:06:50,610 --> 00:06:52,110
‫letzten Abschnitt oder in einem

173
00:06:52,110 --> 00:06:54,130
‫der letzten Abschnitte so eingerichtet, dass wir

174
00:06:54,130 --> 00:06:56,180
‫die einfachen Anführungszeichen immer in Ordnung haben.

175
00:06:56,180 --> 00:06:58,530
‫Um unseren Code hier konsistent zu

176
00:06:58,530 --> 00:07:00,060
‫halten, lassen Sie

177
00:07:00,060 --> 00:07:03,760
‫uns also wirklich sehr schnell die schönere Konfigurationsdatei erstellen.

178
00:07:03,760 --> 00:07:05,293
‫Denken Sie also daran, dass das hübscher ist.

179
00:07:08,320 --> 00:07:10,343
‫Dann haben wir dort ein einfaches Zitat.

180
00:07:11,670 --> 00:07:13,023
‫Setzen Sie es auf wahr.

181
00:07:14,470 --> 00:07:17,063
‫Denken Sie auch an die Druckbreite.

182
00:07:19,140 --> 00:07:20,990
‫Und setze es auf 80.

183
00:07:20,990 --> 00:07:22,373
‫Okay, speichern Sie es.

184
00:07:23,450 --> 00:07:24,520
‫Speichern Sie diese noch einmal.

185
00:07:24,520 --> 00:07:27,800
‫Und Sie sehen, wir haben jetzt unsere Einzelzitate zurück.

186
00:07:27,800 --> 00:07:30,380
‫Das sieht meiner Meinung nach also viel schöner aus.

187
00:07:30,380 --> 00:07:32,630
‫Auch hier können Sie natürlich Ihre

188
00:07:32,630 --> 00:07:35,000
‫eigenen Einstellungen verwenden, wenn Ihnen dies nicht gefällt.

189
00:07:35,000 --> 00:07:36,090
‫Gut.

190
00:07:36,090 --> 00:07:36,923
‫Wie

191
00:07:36,923 --> 00:07:38,780
‫auch immer, dieser Code hier

192
00:07:38,780 --> 00:07:41,130
‫sollte jetzt bereits die HTTP-Anfrage ausführen.

193
00:07:41,130 --> 00:07:41,963
‫Also lass

194
00:07:41,963 --> 00:07:43,143
‫es uns einfach mal testen.

195
00:07:45,980 --> 00:07:46,910
‫Und

196
00:07:46,910 --> 00:07:49,530
‫tatsächlich haben wir dieses Bild hier.

197
00:07:49,530 --> 00:07:50,710
‫Was wir

198
00:07:50,710 --> 00:07:52,660
‫also wollen, befindet sich in

199
00:07:52,660 --> 00:07:54,700
‫diesem Buddy in der Message-Eigenschaft.

200
00:07:54,700 --> 00:07:55,533
‫Also

201
00:07:56,460 --> 00:07:57,293
‫Punktnachricht.

202
00:07:57,293 --> 00:07:58,390
‫Also einfach so.

203
00:07:58,390 --> 00:08:02,390
‫Und hier haben wir also unser Retriever-Image.

204
00:08:02,390 --> 00:08:05,190
‫Lass uns weitermachen und die Rasse hier tatsächlich ändern.

205
00:08:05,190 --> 00:08:06,660
‫Und mit Hunden kenne ich mich nicht so gut aus.

206
00:08:06,660 --> 00:08:09,890
‫Lass uns hier einfach diese Rasse verwenden, die ich

207
00:08:09,890 --> 00:08:10,860
‫kenne, Labrador.

208
00:08:10,860 --> 00:08:12,460
‫Ich weiß nicht einmal, wie ich es sagen soll.

209
00:08:15,470 --> 00:08:16,630
‫Aber ich denke,

210
00:08:16,630 --> 00:08:18,210
‫es ist es, es existiert.

211
00:08:18,210 --> 00:08:20,200
‫Lassen Sie uns hier noch einmal speichern.

212
00:08:20,200 --> 00:08:22,520
‫Und so haben wir jetzt ein anderes Bild.

213
00:08:22,520 --> 00:08:24,730
‫Wir können tatsächlich hier darauf klicken und es

214
00:08:24,730 --> 00:08:26,913
‫wird dieses Bild für uns öffnen.

215
00:08:29,790 --> 00:08:30,623
‫Okay.

216
00:08:30,623 --> 00:08:33,590
‫Um diese HTTP-Anfrage hier auszuführen, brauchten wir also die

217
00:08:33,590 --> 00:08:35,660
‫Daten, die wir zuvor erhalten haben.

218
00:08:35,660 --> 00:08:37,280
‫Also diese Daten.

219
00:08:37,280 --> 00:08:39,890
‫Also mussten wir diese Anfrage

220
00:08:39,890 --> 00:08:42,250
‫hier in dieser Callback-Funktion der

221
00:08:42,250 --> 00:08:44,150
‫Read-File-Funktion ausführen, richtig?

222
00:08:44,150 --> 00:08:46,630
‫Und so haben Sie hier bereits eine Rückruffunktion.

223
00:08:46,630 --> 00:08:48,883
‫Also dieser innerhalb eines Rückrufs.

224
00:08:49,810 --> 00:08:52,000
‫Aber jetzt werden wir tatsächlich noch einen hinzufügen.

225
00:08:52,000 --> 00:08:54,600
‫Denn nun wollen wir diesen String hier in

226
00:08:54,600 --> 00:08:56,300
‫eine neue Textdatei speichern.

227
00:08:56,300 --> 00:08:57,870
‫Und das werden wir hier tun.

228
00:08:57,870 --> 00:09:00,010
‫Und dann wird das wieder eine

229
00:09:00,010 --> 00:09:01,270
‫weitere Rückruffunktion haben.

230
00:09:01,270 --> 00:09:02,243
‫Okay, sinnvoll?

231
00:09:03,750 --> 00:09:04,583
‫Also fs

232
00:09:05,607 --> 00:09:06,440
‫writefile

233
00:09:07,333 --> 00:09:09,580
‫und dann den Namen der Datei.

234
00:09:09,580 --> 00:09:12,990
‫Nennen wir das ein Hundebild. Text.

235
00:09:12,990 --> 00:09:15,440
‫Dann die Daten, die wir in dieser Datei speichern möchten,

236
00:09:15,440 --> 00:09:18,430
‫die übrig ist. Karosserie. Botschaft.

237
00:09:18,430 --> 00:09:19,800
‫Und dann die Rückruffunktion.

238
00:09:19,800 --> 00:09:21,960
‫Und dieser wird natürlich keine Daten haben,

239
00:09:21,960 --> 00:09:23,853
‫aber wir haben den Fehler wieder.

240
00:09:28,500 --> 00:09:30,390
‫Lassen Sie uns etwas in der Konsole

241
00:09:30,390 --> 00:09:32,140
‫protokollieren, z. B. ein zufälliges Hundebild, das

242
00:09:32,140 --> 00:09:33,733
‫in einer Datei gespeichert ist.

243
00:09:35,930 --> 00:09:38,010
‫Speichern Sie es, es wird

244
00:09:38,860 --> 00:09:41,950
‫dann erneut ausgeführt und hier ist unsere Bilddatei.

245
00:09:41,950 --> 00:09:44,030
‫Und tatsächlich können Sie sehen, dass

246
00:09:44,030 --> 00:09:46,373
‫VS-Code dieses Bild hier für uns anzeigt.

247
00:09:48,060 --> 00:09:50,090
‫Speichern Sie es hier noch

248
00:09:50,090 --> 00:09:52,210
‫einmal, es wird dann unseren Code

249
00:09:52,210 --> 00:09:54,420
‫erneut ausführen und jetzt haben wir

250
00:09:54,420 --> 00:09:56,290
‫tatsächlich ein anderes Image.

251
00:09:56,290 --> 00:09:57,230
‫Gut.

252
00:09:57,230 --> 00:10:00,000
‫Unser Code funktioniert also tatsächlich.

253
00:10:00,000 --> 00:10:02,050
‫Lassen Sie uns hier einfach ein kleines

254
00:10:02,050 --> 00:10:03,943
‫Fehlerhandle hinzufügen, falls etwas schief geht.

255
00:10:04,830 --> 00:10:08,593
‫Nehmen wir zum Beispiel an, wir fügen hier einen seltsamen Namen ein.

256
00:10:10,050 --> 00:10:11,120
‫Führen Sie dies erneut aus.

257
00:10:11,120 --> 00:10:13,860
‫Und so wird es im Moment kein Bild dafür

258
00:10:13,860 --> 00:10:14,700
‫finden können.

259
00:10:14,700 --> 00:10:17,683
‫Und das führt hier tatsächlich zu einem Fehler.

260
00:10:18,620 --> 00:10:19,620
‫Daher sollten wir

261
00:10:19,620 --> 00:10:22,300
‫diese Art der Fehlerbehandlung immer am Anfang durchführen und

262
00:10:22,300 --> 00:10:23,290
‫dies sagen,

263
00:10:23,290 --> 00:10:24,943
‫wenn ein Fehler aufgetreten ist,

264
00:10:27,060 --> 00:10:29,010
‫und wir können Fehler einfach protokollieren. Botschaft.

265
00:10:30,247 --> 00:10:31,830
‫Und eigentlich sollten wir auch sagen,

266
00:10:31,830 --> 00:10:34,670
‫dass wir bei einem Fehler sofort von dieser Funktion zurückkehren möchten.

267
00:10:34,670 --> 00:10:37,330
‫Es wird also diesen Fehler zurückgeben und

268
00:10:37,330 --> 00:10:39,450
‫an der Konsole protokollieren.

269
00:10:39,450 --> 00:10:41,550
‫Und dann passiert nichts mehr.

270
00:10:41,550 --> 00:10:43,840
‫Okay.

271
00:10:43,840 --> 00:10:45,140
‫So heißt es nochmal, hier nicht gefunden.

272
00:10:45,140 --> 00:10:46,920
‫Und es wurde nichts in der

273
00:10:46,920 --> 00:10:49,770
‫Datei gespeichert, da wir bereits von der Funktion hier oben zurückgekehrt sind.

274
00:10:49,770 --> 00:10:52,870
‫Okay?

275
00:10:52,870 --> 00:10:53,703
‫Und das gleiche hier unten,

276
00:10:53,703 --> 00:10:55,250
‫falls beim Speichern der Datei auf der Festplatte ein Fehler auftritt.

277
00:10:55,250 --> 00:10:59,513
‫Lass uns hierher zurückgehen und es noch

278
00:11:00,870 --> 00:11:02,173
‫einmal speichern.

279
00:11:03,670 --> 00:11:04,780
‫Und so funktioniert es jetzt wieder einwandfrei.

280
00:11:04,780 --> 00:11:07,923
‫Okay.

281
00:11:08,860 --> 00:11:09,693
‫Dies ist also

282
00:11:09,693 --> 00:11:10,526
‫nur ein

283
00:11:10,526 --> 00:11:13,100
‫kleines Beispiel, um Ihnen zu zeigen, wie einfach es

284
00:11:13,100 --> 00:11:15,770
‫ist, Rückrufe innerhalb von Rückrufen innerhalb von Rückrufen zu erhalten.

285
00:11:15,770 --> 00:11:17,100
‫Und das liegt natürlich daran, dass

286
00:11:17,100 --> 00:11:18,390
‫wir in Note JS bereits

287
00:11:18,390 --> 00:11:20,400
‫wissen, dass wir immer asynchronen Code verwenden sollten, oder?

288
00:11:20,400 --> 00:11:23,160
‫Am Ende haben wir Rückrufe innerhalb von

289
00:11:23,160 --> 00:11:25,870
‫Rückrufen innerhalb von Rückrufen verwendet.

290
00:11:25,870 --> 00:11:27,090
‫Und manchmal kann

291
00:11:27,090 --> 00:11:30,170
‫es natürlich noch tiefer gehen als das, was wir hier haben.

292
00:11:30,170 --> 00:11:31,003
‫Sie können

293
00:11:31,003 --> 00:11:33,010
‫natürlich 10 Ebenen ineinander haben.

294
00:11:33,010 --> 00:11:34,600
‫All diese Rückrufe lassen

295
00:11:34,600 --> 00:11:36,230
‫unseren Code etwas unordentlich aussehen.

296
00:11:36,230 --> 00:11:38,920
‫Es macht es schwer zu verstehen und auch

297
00:11:38,920 --> 00:11:40,760
‫im Allgemeinen schwer zu pflegen.

298
00:11:40,760 --> 00:11:43,680
‫Auch hier vielleicht nicht auf dieser Ebene mit nur

299
00:11:43,680 --> 00:11:45,050
‫drei Rückrufen ineinander.

300
00:11:45,050 --> 00:11:48,200
‫Aber wenn wir es noch tiefer verschachtelt hätten,

301
00:11:48,200 --> 00:11:50,300
‫könnte es schnell zu einem

302
00:11:50,300 --> 00:11:53,080
‫Albtraum werden, Code wie diesen zu pflegen.

303
00:11:53,080 --> 00:11:54,920
‫Und deshalb wird

304
00:11:54,920 --> 00:11:56,840
‫dieses Muster Call-Back-Hölle genannt.

305
00:11:56,840 --> 00:11:58,200
‫Diese Dreiecksform

306
00:11:58,200 --> 00:12:01,450
‫ist in unserem Code leicht zu erkennen.

307
00:12:01,450 --> 00:12:02,283
‫Das haben wir hier.

308
00:12:02,283 --> 00:12:04,050
‫Wie diese Art von Dreiecksform.

309
00:12:04,050 --> 00:12:07,170
‫Immer wenn du das siehst, ist es ein Zeichen dafür,

310
00:12:07,170 --> 00:12:08,620
‫dass du im

311
00:12:08,620 --> 00:12:10,100
‫Grunde in der Hölle bist.

312
00:12:10,100 --> 00:12:11,970
‫Okay?

313
00:12:11,970 --> 00:12:12,803
‫Und Sie

314
00:12:12,803 --> 00:12:15,160
‫werden diesen Begriff vielleicht sehen oder hören, wenn Sie

315
00:12:15,160 --> 00:12:17,100
‫in Note JS recherchieren oder etwas Ähnliches.

316
00:12:17,100 --> 00:12:19,000
‫Aber im Moment ist dies der einzige

317
00:12:19,000 --> 00:12:21,200
‫Weg, den wir kennen, um asynchronen Code

318
00:12:21,200 --> 00:12:22,140
‫zu schreiben.

319
00:12:22,140 --> 00:12:25,350
‫Aber das werden wir uns für den Rest dieses

320
00:12:25,350 --> 00:12:26,890
‫kleinen Abschnitts sparen.

321
00:12:26,890 --> 00:12:29,120
‫Also werden wir lernen, wie man

322
00:12:29,120 --> 00:12:30,810
‫etwas namens Versprechen verwendet.

323
00:12:30,810 --> 00:12:32,550
‫Und das wird dann am

324
00:12:32,550 --> 00:12:33,820
‫Ende unser

325
00:12:33,820 --> 00:12:37,080
‫Problem lösen und unseren Code leichter lesen und warten.

326
00:12:37,080 --> 00:12:38,570
‫Lassen Sie uns das im Rest des Abschnitts tun.

