1
00:00:00,809 --> 00:00:04,431
[MUSIC]

2
00:00:04,431 --> 00:00:08,086
La comunicazione tra client e server non è mai un affare fatto.

3
00:00:08,086 --> 00:00:10,326
Per parafrasare un famoso proverbio,

4
00:00:10,326 --> 00:00:14,168
c'è molta faretra tra il client e il server.

5
00:00:14,168 --> 00:00:17,226
Quindi, come affrontiamo gli errori quando si presentano,

6
00:00:17,226 --> 00:00:21,415
quando stiamo comunicando tra il client e il server?

7
00:00:21,415 --> 00:00:26,008
Parliamo di questo in questo esercizio.

8
00:00:26,008 --> 00:00:29,931
Quando il server genera una risposta, o il client HTTP,

9
00:00:29,931 --> 00:00:35,110
durante la comunicazione con il server, rileva un errore e quindi genera

10
00:00:35,110 --> 00:00:40,390
una risposta di errore, questa viene fornita sotto forma di risposta di errore HTTP.

11
00:00:40,390 --> 00:00:43,760
Ora, questa risposta, vogliamo essere in grado di elaborarlo e

12
00:00:43,760 --> 00:00:48,840
poi trasformarlo in una stringa di messaggio di risposta, che

13
00:00:48,840 --> 00:00:54,790
può essere consegnato al client in modo che il client possa visualizzare questo sullo schermo.

14
00:00:54,790 --> 00:00:56,727
Quindi, per permetterci di farlo,

15
00:00:56,727 --> 00:01:02,727
creeremo un nuovo servizio chiamato messaggio HTTP processo in questo, questa è cartella.

16
00:01:02,727 --> 00:01:08,663
Quindi, per farlo, al prompt digitare ng,

17
00:01:08,663 --> 00:01:15,174
g service services/ProcessHttpMSG

18
00:01:15,174 --> 00:01:22,265
e generare il servizio ProcessHttpMsg.

19
00:01:22,265 --> 00:01:26,178
Ora, una volta generato il servizio, andremo avanti e

20
00:01:26,178 --> 00:01:27,921
aggiungerlo nel modulo app.

21
00:01:27,921 --> 00:01:36,240
E poi aggiungeremo un metodo al servizio ProcessHttpMsg.

22
00:01:36,240 --> 00:01:40,068
Ora che abbiamo creato il servizio ProcessHttpMsg,

23
00:01:40,068 --> 00:01:44,653
andiamo avanti e poi aggiungere che nel file app.module.ts.

24
00:01:44,653 --> 00:01:52,993
Quindi, andando al file app.module.ts,

25
00:01:52,993 --> 00:02:02,353
lasciami importare il servizio ProcessHttpMsg,

26
00:02:06,191 --> 00:02:15,255
From '. /services/process-httpmsg.service '.

27
00:02:15,255 --> 00:02:22,945
Quindi una volta che viene importato, allora saremo in grado di usarlo nella nostra applicazione.

28
00:02:22,945 --> 00:02:26,463
Quindi andiamo avanti e aggiungilo ai nostri fornitori.

29
00:02:26,463 --> 00:02:29,216
Quindi, andando nei nostri fornitori,

30
00:02:29,216 --> 00:02:34,952
lasciami aggiungere il ProcessHttpMsgService nei provider.

31
00:02:34,952 --> 00:02:38,429
La prima cosa che faremo è includere un nuovo metodo

32
00:02:38,429 --> 00:02:41,618
nel ProcessHttpMsgService chiamato handle error,

33
00:02:41,618 --> 00:02:45,105
che si occuperà di gestire gli errori quando si presentano.

34
00:02:45,105 --> 00:02:51,220
E poi faremo uso di loro nei servizi in cui accediamo al server.

35
00:02:51,220 --> 00:02:54,546
Per iniziare, cerchiamo prima di importare,

36
00:02:57,928 --> 00:03:03,969
throwError da, rxjs,

37
00:03:03,969 --> 00:03:09,766
e questo ci aiuta a gettare errore ogni volta che si verifica.

38
00:03:12,005 --> 00:03:20,787
E poi importiamo HttperRorResponse da,

39
00:03:23,316 --> 00:03:28,193
angular/common/http.

40
00:03:30,926 --> 00:03:35,632
Poi inizieremo a progettare metodo HandleError, e

41
00:03:35,632 --> 00:03:41,257
questo richiede, come parametro, un errore che potrebbe essere una risposta,

42
00:03:41,257 --> 00:03:45,042
che è una risposta di errore dal server,

43
00:03:45,042 --> 00:03:48,746
o qualsiasi altro motivo che l'errore si verifica.

44
00:03:48,746 --> 00:03:54,095
Quindi all'interno di questo metodo HandleError, cosa dovremmo fare?

45
00:03:54,095 --> 00:04:02,195
Proviamo a costruire un messaggio che riassume di cosa si tratta l'errore.

46
00:04:02,195 --> 00:04:06,389
Quindi includeremo una nuova variabile stringa qui.

47
00:04:07,880 --> 00:04:13,080
Se error.error è un'istanza

48
00:04:13,080 --> 00:04:18,699
di ErrorEvent, quindi se si tratta di un evento di errore che si verifica,

49
00:04:18,699 --> 00:04:24,170
allora error.error.message conterrà informazioni.

50
00:04:24,170 --> 00:04:26,695
Quindi imposteremo il messaggio di errore su

51
00:04:26,695 --> 00:04:35,630
error.error.message.

52
00:04:35,630 --> 00:04:42,630
Se questo non è il caso, significa che questo proviene dal lato server,

53
00:04:42,630 --> 00:04:48,500
e quindi in tal caso, il messaggio di errore viene costruito dicendo uguale a backquotes,

54
00:04:48,500 --> 00:04:55,940
nota le backquotes qui, e poi $ {error.status}.

55
00:04:55,940 --> 00:04:59,450
Quindi stiamo estraendo le informazioni sullo stato da lì.

56
00:04:59,450 --> 00:05:03,956
E poi, - error.StatusText,

57
00:05:03,956 --> 00:05:07,710
se StatusText esiste, o

58
00:05:07,710 --> 00:05:12,226
quella sarà una stringa vuota lì.

59
00:05:12,226 --> 00:05:17,691
E poi includeremo anche l'error.error stesso,

60
00:05:17,691 --> 00:05:23,866
l'oggetto errore completo stesso, proprio lì nella stringa.

61
00:05:23,866 --> 00:05:29,320
E poi usalo come nostro messaggio di errore.

62
00:05:29,320 --> 00:05:33,484
Ora, una volta che abbiamo il messaggio di errore,

63
00:05:33,484 --> 00:05:38,169
allora saremo in grado di utilizzare ThrowError per

64
00:05:38,169 --> 00:05:43,520
restituire un errore osservabile alla nostra applicazione.

65
00:05:44,940 --> 00:05:48,960
Quindi ciò significa che questo sta lanciando un errore a questo punto,

66
00:05:48,960 --> 00:05:51,370
con il messaggio di errore incluso lì.

67
00:05:51,370 --> 00:05:56,549
Quindi questa stringa di messaggio di errore è costruita sulla base delle informazioni

68
00:05:56,549 --> 00:06:02,243
che otteniamo qui, sia perché il lato server ha risposto con un errore o

69
00:06:02,243 --> 00:06:05,111
l'errore potrebbe essere da altri motivi.

70
00:06:05,111 --> 00:06:09,606
Quindi, in entrambi i casi, costruiremo un messaggio di errore e poi lo restituiremo.

71
00:06:09,606 --> 00:06:12,493
Ora, dove facciamo uso di questo errore di handle?

72
00:06:12,493 --> 00:06:17,549
Ora, all'interno dei nostri servizi, ad esempio il file dishservice.ts,

73
00:06:17,549 --> 00:06:22,866
abbiamo visto che in precedenza, quando abbiamo detto questo HTTP ottenere, e poi abbiamo appena detto mappa,

74
00:06:22,866 --> 00:06:28,020
e poi ipotizzato che la risposta è sempre una risposta positiva.

75
00:06:28,020 --> 00:06:31,580
Ma supponiamo che la loro risposta non

76
00:06:31,580 --> 00:06:37,330
sia positiva, e quindi restituisce un errore, quindi dobbiamo rilevare quell'errore.

77
00:06:37,330 --> 00:06:44,180
Per aiutarci con questo, importiamo l'operatore CatchError da rxjs,

78
00:06:44,180 --> 00:06:50,690
e quindi importiamo anche il ProcessHttpMsgService

79
00:06:50,690 --> 00:06:56,001
che abbiamo appena creato in precedenza nel

80
00:06:56,001 --> 00:07:01,860
nostro servizio piatto in modo che possiamo usare il metodo di errore handle da lì.

81
00:07:01,860 --> 00:07:08,060
Quindi importiamo questo da. /process-httpmsg.service.

82
00:07:08,060 --> 00:07:12,670
E poi, scendendo al costruttore,

83
00:07:12,670 --> 00:07:18,690
ora iniettiamo il servizio di messaggi HTTP processo

84
00:07:18,690 --> 00:07:22,910
nel costruttore, insieme al client HTTP. In

85
00:07:22,910 --> 00:07:27,080
modo che possiamo fare uso di questo servizio,

86
00:07:27,080 --> 00:07:32,280
in particolare il metodo di errore handle del servizio per gestire gli errori

87
00:07:32,280 --> 00:07:37,710
che vengono restituiti dal nostro client HTTP lì.

88
00:07:38,930 --> 00:07:43,009
Ora, una volta che abbiamo configurato il costruttore,

89
00:07:43,009 --> 00:07:46,988
quindi per gestire l'errore nel metodo GetDiches per

90
00:07:46,988 --> 00:07:50,980
esempio, ci reindirizzare al metodo CatchErrors.

91
00:07:50,980 --> 00:07:54,762
E quindi chiamare il metodo HandleError dopo

92
00:07:54,762 --> 00:08:00,446
questo.ProcessHttpMsgService all'interno del metodo CatchError.

93
00:08:00,446 --> 00:08:07,817
Quindi in questo modo Quando il client HTTP restituisce un errore, questo verrà elaborato e

94
00:08:07,817 --> 00:08:12,875
verrà estratto il messaggio di errore appropriato.

95
00:08:12,875 --> 00:08:16,879
E poi finirà per lanciare l'errore attraverso

96
00:08:16,879 --> 00:08:20,112
il metodo HandleError a quel punto.

97
00:08:20,112 --> 00:08:24,108
Allo stesso modo, facciamo lo stesso con i

98
00:08:24,108 --> 00:08:27,710
metodi GetDish e GetFeatureDish anche.

99
00:08:27,710 --> 00:08:31,710
Ora, quando si tratta del metodo GetDish id,

100
00:08:31,710 --> 00:08:36,200
dal momento che il metodo GetDish ids sta facendo uso del metodo getDishes,.

101
00:08:36,200 --> 00:08:40,670
Quindi non abbiamo bisogno di chiamare esplicitamente HandleError perché se si verifica un errore,

102
00:08:40,670 --> 00:08:45,560
il metodo GetDiches avrà già convertito quell'errore in una stringa di errore.

103
00:08:45,560 --> 00:08:50,930
Quindi abbiamo solo bisogno di catturare l'errore e quindi restituire l'errore da GetDish Ids.

104
00:08:50,930 --> 00:08:55,020
Normalmente, non saremmo nemmeno arrivati a questo punto se si verifica un errore, perché

105
00:08:55,020 --> 00:09:00,250
il metodo GetDiches avrebbe gestito l'errore in modo appropriato a quel punto.

106
00:09:00,250 --> 00:09:06,880
Quindi, una volta configurato il servizio piatto in modo appropriato,

107
00:09:06,880 --> 00:09:12,600
allora saremo in grado di utilizzare il

108
00:09:12,600 --> 00:09:17,283
metodo CatchError per affrontare gli errori che si presentano.

109
00:09:17,283 --> 00:09:23,647
Ora che abbiamo aggiornato il nostro servizio per essere in grado di gestire gli errori.

110
00:09:23,647 --> 00:09:27,486
Come gestiamo questo all'interno del nostro componente stessi?

111
00:09:27,486 --> 00:09:31,309
Quindi all'interno di un componente, quindi per esempio, quando andiamo al componente menu.

112
00:09:31,309 --> 00:09:34,557
Quello che ci rendiamo conto è che quando facciamo l'abbonamento,

113
00:09:34,557 --> 00:09:38,280
ci aspettavamo che i piatti ci fossero consegnati.

114
00:09:38,280 --> 00:09:40,750
Ora, è possibile che l'istruzione dei piatti,

115
00:09:40,750 --> 00:09:44,210
l'errore sarà consegnato dal lancio osservabile e

116
00:09:44,210 --> 00:09:47,430
quindi che si traduce nel messaggio di errore essere a nostra disposizione.

117
00:09:47,430 --> 00:09:52,540
Quindi, per affrontare questa situazione, introdurrò una nuova

118
00:09:52,540 --> 00:09:59,088
variabile chiamata errMess nel componente del menu che è di tipo stringa.

119
00:09:59,088 --> 00:10:05,647
E poi il metodo di sottoscrizione stesso fornisce un modo per gestire gli errori.

120
00:10:05,647 --> 00:10:12,315
Quindi il metodo di sottoscrizione, in questo momento abbiamo specificato solo una funzione qui.

121
00:10:12,315 --> 00:10:17,142
Possiamo anche specificare una seconda funzione che

122
00:10:17,142 --> 00:10:21,020
verrà chiamata quando il risultato dell'errore.

123
00:10:21,020 --> 00:10:26,000
Quindi, in questo caso, posso fornire una seconda funzione di errore che dice,

124
00:10:26,000 --> 00:10:30,460
errMess, che è il valore restituito

125
00:10:30,460 --> 00:10:35,630
quando il lancio osservabile viene eseguito dal DishService.

126
00:10:35,630 --> 00:10:43,850
Quindi in questo caso, direi this.errMess = <any>errMess, e il gioco è fatto.

127
00:10:43,850 --> 00:10:48,709
Quindi qui quello che succede è che quando l'osservabile

128
00:10:48,709 --> 00:10:53,082
viene restituito da DishService è un valore,

129
00:10:53,082 --> 00:10:57,707
allora sarebbe gestito dalla prima parte.

130
00:10:57,707 --> 00:11:01,434
Se l'osservabile viene restituito con il lancio osservabile,

131
00:11:01,434 --> 00:11:03,874
questa funzione verrà eseguita.

132
00:11:03,874 --> 00:11:07,689
E in questa funzione, stiamo prendendo il messaggio di errore e

133
00:11:07,689 --> 00:11:12,949
quindi catturando quel messaggio di errore in questa stringa ErrMess che abbiamo qui.

134
00:11:12,949 --> 00:11:16,776
Così ora abbiamo il messaggio di errore a nostra disposizione, in modo da

135
00:11:16,776 --> 00:11:21,940
poter visualizzare questo messaggio di errore sulla vista di questo componente di menu.

136
00:11:21,940 --> 00:11:25,910
Quindi, come lo visualizziamo nella vista dei componenti del menu?

137
00:11:25,910 --> 00:11:33,700
Così andando al file modello componenti del menu, qui vediamo che se i piatti non è nullo,

138
00:11:33,700 --> 00:11:39,200
allora stiamo visualizzando il menu con tutti i piatti.

139
00:11:39,200 --> 00:11:46,550
Se piatti è nullo allora questo filatore viene visualizzato lì.

140
00:11:46,550 --> 00:11:50,903
Ora, aggiungeremo un altro qui,

141
00:11:50,903 --> 00:11:55,107
anche se l'ErrMess che abbiamo,

142
00:11:55,107 --> 00:11:59,912
la variabile, non è nullo, allora anche

143
00:11:59,912 --> 00:12:04,866
lo spinner dovrebbe essere nascosto e poi,

144
00:12:04,866 --> 00:12:10,300
infine, aggiungere un altro div con un NGIF.

145
00:12:10,300 --> 00:12:15,077
Quindi ciò che fa è che quest'ultima immersione verrà visualizzata nel

146
00:12:15,077 --> 00:12:19,470
caso in cui ci sia un errore, e il messaggio di errore.

147
00:12:19,470 --> 00:12:23,345
La stringa ErrMess è impostata sul messaggio di errore.

148
00:12:23,345 --> 00:12:29,648
Quindi, in tal caso, diremo semplicemente errore h2,

149
00:12:29,648 --> 00:12:35,962
e poi ho intenzione di visualizzare quella stringa come,

150
00:12:41,159 --> 00:12:46,586
Una stringa all'interno della vista lì, è tutto.

151
00:12:46,586 --> 00:12:50,539
Puoi fare un modo più elaborato di visualizzare il messaggio di errore se lo

152
00:12:50,539 --> 00:12:51,081
desideri.

153
00:12:51,081 --> 00:12:54,118
Ma tutto ciò che ho intenzione di fare è se c'è un errore,

154
00:12:54,118 --> 00:12:58,280
mostrerò semplicemente un errore sullo schermo e quindi visualizzerò un ErrMess.

155
00:12:58,280 --> 00:13:04,283
Puoi anche modellarlo cambiando il colore in rosso e

156
00:13:04,283 --> 00:13:09,875
così via, ma lo lascerò lì così.

157
00:13:09,875 --> 00:13:16,477
Quindi, con questo, finiremo per visualizzare il messaggio di errore nella vista qui.

158
00:13:16,477 --> 00:13:21,471
La stessa procedura può essere utilizzata anche con il componente piatto e

159
00:13:21,471 --> 00:13:26,764
anche con il componente di casa a cui si accede al servizio di piatti.

160
00:13:26,764 --> 00:13:32,692
Quindi, andando al componente piatto, sto andando a fare esattamente la stessa cosa,

161
00:13:32,692 --> 00:13:42,680
quindi all'interno del componente piatto includerò il, ErrMess qui.

162
00:13:42,680 --> 00:13:45,654
E poi proprio qui all'interno della sottoscrizione,

163
00:13:45,654 --> 00:13:49,190
questo è dove stiamo ricevendo il valore del piatto.

164
00:13:49,190 --> 00:13:50,260
Quindi la prima parte,

165
00:13:50,260 --> 00:13:55,770
ciò che abbiamo già incluso verrà chiamato se l'osservabile restituisce un valore.

166
00:13:55,770 --> 00:14:00,770
Ma se non restituisce un valore, allora abbiamo bisogno di gestire il messaggio di errore.

167
00:14:00,770 --> 00:14:04,360
E useremo esattamente la stessa

168
00:14:04,360 --> 00:14:09,620
funzione messaggio di errore che abbiamo definito in precedenza nel componente menu.

169
00:14:09,620 --> 00:14:15,926
Quindi, diremo che this.errMess

170
00:14:15,926 --> 00:14:20,791
= Ermess qui.

171
00:14:20,791 --> 00:14:26,971
Questo è tutto, quindi il mio componente piatto è ora aggiornato.

172
00:14:26,971 --> 00:14:31,521
Quindi ho bisogno di aggiornare il file modello del componente piatto.

173
00:14:31,521 --> 00:14:34,317
Quindi, andando al file modello,

174
00:14:34,317 --> 00:14:40,240
vediamo che stiamo andando a visualizzare il piatto se piatto non è nullo.

175
00:14:40,240 --> 00:14:45,034
E poi qui sotto, ci occuperemo della situazione

176
00:14:45,034 --> 00:14:49,326
in cui mostreremo allo spinner se il piatto è nullo.

177
00:14:49,326 --> 00:14:54,826
Quindi lasciami aggiungere anche, se il messaggio di errore non è nullo, allora

178
00:14:54,826 --> 00:15:00,235
dovrei mostrare il messaggio di errore piuttosto che il piatto qui, giusto?

179
00:15:00,235 --> 00:15:03,827
Quindi, lasciami andare avanti e

180
00:15:03,827 --> 00:15:10,075
copiare il codice dal componente del menu.

181
00:15:10,075 --> 00:15:12,790
Userò esattamente lo stesso codice

182
00:15:12,790 --> 00:15:16,171
anche per il file modello dei componenti di dettaglio del piatto.

183
00:15:16,171 --> 00:15:19,435
Quindi, proprio li'.

184
00:15:19,435 --> 00:15:22,823
Lasciami andare avanti e inserire quel codice qui.

185
00:15:22,823 --> 00:15:26,130
Quindi vediamo che se ErrMess non è nullo,

186
00:15:26,130 --> 00:15:30,838
allora questo errore verrà visualizzato nella vista lì.

187
00:15:30,838 --> 00:15:31,938
Ora stessa cosa,

188
00:15:31,938 --> 00:15:36,502
andando al componente di casa abbiamo bisogno di passare attraverso la stessa procedura.

189
00:15:36,502 --> 00:15:40,688
Ora, all'interno della componente di casa, naturalmente, abbiamo piatto, promozione e leader.

190
00:15:40,688 --> 00:15:47,625
Quindi definirò stringhe separate per

191
00:15:47,625 --> 00:15:53,169
ognuna di esse perché l'errore potrebbe derivare da uno qualsiasi dei tre.

192
00:15:53,169 --> 00:15:57,927
In questo momento abbiamo a che fare con il piatto che viene prelevato dal lato server.

193
00:15:57,927 --> 00:16:04,000
I restanti due mi aspetterò che tu lo faccia come parte del compito finale.

194
00:16:04,000 --> 00:16:10,252
Quindi diremo, dirò stringa errmess piatto e poi scenderemo nel codice qui.

195
00:16:10,252 --> 00:16:13,630
E nel codice qui,

196
00:16:13,630 --> 00:16:18,146
diremo semplicemente errmess.

197
00:16:18,146 --> 00:16:23,925
Questo errore piatto = qualsiasi

198
00:16:23,925 --> 00:16:30,130
errore, il gioco è fatto.

199
00:16:30,130 --> 00:16:35,036
E allo stesso modo, aggiorna i file di modello dei componenti di casa.

200
00:16:35,036 --> 00:16:40,215
E andando al file modello componenti di casa,

201
00:16:40,215 --> 00:16:45,392
vediamo che abbiamo il cestino piatto visualizzato lì,

202
00:16:45,392 --> 00:16:50,461
quindi ora per questo dovrei dire o piatto ErrMess.

203
00:16:50,461 --> 00:16:55,738
E poi, qui sotto, includerò il codice

204
00:16:55,738 --> 00:17:00,648
che ho copiato dal componente del menu, e

205
00:17:00,648 --> 00:17:04,600
poi lo aggiorno al piatto ErrMess qui.

206
00:17:04,600 --> 00:17:11,957
E anche, aggiorna questo a DisherrMess qui, è tutto.

207
00:17:11,957 --> 00:17:14,113
Salviamo le modifiche.

208
00:17:14,113 --> 00:17:18,823
Andando al browser, vedi che tutto funziona proprio come prima.

209
00:17:18,823 --> 00:17:24,249
La casa, il componente menu e anche il componente dettaglio piatto senza alcun problema.

210
00:17:24,249 --> 00:17:27,498
Ora la domanda è, come facciamo a causare errori?

211
00:17:27,498 --> 00:17:35,566
Per causare errori, un modo possibile per affrontare il problema è andare a

212
00:17:35,566 --> 00:17:40,961
cercare un'informazione inesistente dal server.

213
00:17:40,961 --> 00:17:45,865
Lasciami andare al servizio piatto e poi causare

214
00:17:45,865 --> 00:17:51,240
il mio primo problema nel DishService qui.

215
00:17:51,240 --> 00:17:55,460
Quindi, per il piatto in primo piano invece di piatti, lasciami fare un errore e

216
00:17:55,460 --> 00:17:59,470
dire piatti e poi salvare il resto.

217
00:17:59,470 --> 00:18:04,160
Ovviamente questo significa che questo url non esiste.

218
00:18:04,160 --> 00:18:07,482
Quindi, cosa succederà se accede al server?

219
00:18:07,482 --> 00:18:11,514
Andando al browser quando ora scorriamo,

220
00:18:11,514 --> 00:18:16,504
vedi che il piatto non viene visualizzato qui.

221
00:18:16,504 --> 00:18:19,570
Dice qui Errore 404 Non trovato.

222
00:18:19,570 --> 00:18:24,170
Questo perché stiamo cercando di accedere alle informazioni del piatto presso

223
00:18:24,170 --> 00:18:28,424
gli URL dishees che non esiste sul lato server.

224
00:18:28,424 --> 00:18:32,289
Quindi vedi come viene visualizzato il messaggio di errore qui.

225
00:18:32,289 --> 00:18:36,172
Ovviamente, puoi essere un po 'più elegante e fare più lavoro su questo e

226
00:18:36,172 --> 00:18:39,460
quindi visualizzare il messaggio di errore in un modo più significativo.

227
00:18:39,460 --> 00:18:44,750
Ma il principio di base è evidenziato qui dicendo che è

228
00:18:44,750 --> 00:18:50,357
possibile mostrare un messaggio di errore se qualcosa non viene eseguito correttamente

229
00:18:50,357 --> 00:18:56,194
quando si tenta di accedere alle informazioni dal lato server.

230
00:18:56,194 --> 00:19:02,373
Certo, quindi questo è un errore creato artificialmente nella mia applicazione.

231
00:19:02,373 --> 00:19:07,020
Per causare un altro tipo di errore, sono andato alla mia finestra del terminale e

232
00:19:07,020 --> 00:19:12,295
poi spento il server per vedere cosa farà la mia applicazione Angular in questo caso.

233
00:19:12,295 --> 00:19:15,267
Quindi, dopo aver arrestato il server,

234
00:19:15,267 --> 00:19:20,330
vediamo cosa visualizzerà il componente home nella sua vista.

235
00:19:21,830 --> 00:19:26,620
Quindi, andando al componente home, ora vediamo che poiché la mia

236
00:19:26,620 --> 00:19:31,330
applicazione Angular non è in grado di accedere al server, ha causato di nuovo un errore.

237
00:19:31,330 --> 00:19:37,450
E poi mostra questa stringa lì per indicare che si è verificato un errore.

238
00:19:37,450 --> 00:19:40,560
Naturalmente, questa è una stringa criptica,

239
00:19:40,560 --> 00:19:45,010
non trasmette nulla di significativo su quale sia la fonte dell'errore.

240
00:19:45,010 --> 00:19:52,420
Ma questo è tutto ciò che potremmo ottenere cercando di accedere al server in questa applicazione.

241
00:19:52,420 --> 00:19:56,260
Stessa cosa, se vado al menu, vedrai lo stesso tipo di cosa che viene

242
00:19:56,260 --> 00:19:59,010
visualizzato, perché il server non è disponibile, e quindi

243
00:19:59,010 --> 00:20:02,150
le informazioni sui piatti non possono essere recuperate dal server.

244
00:20:02,150 --> 00:20:05,110
Con questo completiamo questo esercizio.

245
00:20:05,110 --> 00:20:07,660
In questo esercizio, abbiamo imparato come gestire gli

246
00:20:07,660 --> 00:20:13,040
errori che si verificano durante la comunicazione del server client nella nostra applicazione Angular.

247
00:20:13,040 --> 00:20:18,333
Questo è un buon momento per fare un commit git con il messaggio http parte due.

248
00:20:18,333 --> 00:20:24,225
[ MUSIC]