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

2
00:00:04,431 --> 00:00:08,086
La comunicación entre el cliente y el servidor nunca es un trato hecho.

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

4
00:00:10,326 --> 00:00:14,168
hay muchos alcaj entre el cliente y el servidor.

5
00:00:14,168 --> 00:00:17,226
Entonces, ¿cómo tratamos los errores cuando surgen,

6
00:00:17,226 --> 00:00:21,415
cuando nos estamos comunicando entre el cliente y el servidor?

7
00:00:21,415 --> 00:00:26,008
Hablemos de eso en este ejercicio.

8
00:00:26,008 --> 00:00:29,931
Cuando el servidor genera una respuesta, o el cliente HTTP,

9
00:00:29,931 --> 00:00:35,110
mientras se comunica con el servidor, encuentra un error y, a continuación, genera

10
00:00:35,110 --> 00:00:40,390
una respuesta de error, esto se entrega en forma de respuesta de error HTTP.

11
00:00:40,390 --> 00:00:43,760
Ahora, esta respuesta, queremos poder procesarla y

12
00:00:43,760 --> 00:00:48,840
luego convertirla en una cadena de mensaje de respuesta, que

13
00:00:48,840 --> 00:00:54,790
se puede entregar al cliente para que el cliente pueda mostrar esto en la pantalla.

14
00:00:54,790 --> 00:00:56,727
Así que para permitirnos hacer eso,

15
00:00:56,727 --> 00:01:02,727
vamos a crear un nuevo servicio llamado proceso HTTP mensaje en este, esto es carpeta.

16
00:01:02,727 --> 00:01:08,663
Así que para hacer eso, en el prompt escriba ng,

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

18
00:01:15,174 --> 00:01:22,265
y genere el servicio processhttpMsg.

19
00:01:22,265 --> 00:01:26,178
Ahora, una vez que se genere el servicio, continuaremos y

20
00:01:26,178 --> 00:01:27,921
lo agregaremos al módulo de la aplicación.

21
00:01:27,921 --> 00:01:36,240
Y luego agregaremos un método al servicio ProcessHTTPMsg.

22
00:01:36,240 --> 00:01:40,068
Ahora que hemos creado el servicio ProcessHTTPMSG,

23
00:01:40,068 --> 00:01:44,653
vamos a seguir adelante y luego agregar eso en el archivo app.module.ts.

24
00:01:44,653 --> 00:01:52,993
Así que yendo al archivo app.module.ts,

25
00:01:52,993 --> 00:02:02,353
déjame importar el servicio ProcessHTTPMSG,

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

27
00:02:15,255 --> 00:02:22,945
Así que una vez que se importa, entonces podremos usarlo en nuestra aplicación.

28
00:02:22,945 --> 00:02:26,463
Así que sigamos adelante y añadamos eso a nuestros proveedores.

29
00:02:26,463 --> 00:02:29,216
Así que entrando en nuestros proveedores,

30
00:02:29,216 --> 00:02:34,952
permítanme agregar en ProcessHTTPMsgService a los proveedores.

31
00:02:34,952 --> 00:02:38,429
Lo primero que haremos es incluir un nuevo método en

32
00:02:38,429 --> 00:02:41,618
el processhttpMsgService llamado handle errors,

33
00:02:41,618 --> 00:02:45,105
que se encargará de manejar errores cuando surjan.

34
00:02:45,105 --> 00:02:51,220
Y luego haremos uso de ellos en los servicios donde accedemos al servidor.

35
00:02:51,220 --> 00:02:54,546
Para empezar, primero importemos,

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

37
00:03:03,969 --> 00:03:09,766
y esto nos ayuda a arrojar errores cada vez que surge.

38
00:03:12,005 --> 00:03:20,787
Y luego importamos HttpErrorResponse desde,

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

40
00:03:30,926 --> 00:03:35,632
Entonces comenzaremos a diseñar el método HandleError, y

41
00:03:35,632 --> 00:03:41,257
esto toma, como parámetro, un error que podría ser una respuesta,

42
00:03:41,257 --> 00:03:45,042
que es una respuesta de error del servidor,

43
00:03:45,042 --> 00:03:48,746
o cualquier otra razón por la que se produzca el error.

44
00:03:48,746 --> 00:03:54,095
Entonces, dentro de este método HandleError, ¿qué se supone que debemos hacer?

45
00:03:54,095 --> 00:04:02,195
Tratemos de construir un mensaje que resume de qué se trata el error.

46
00:04:02,195 --> 00:04:06,389
Así que incluiremos una nueva variable de cadena aquí.

47
00:04:07,880 --> 00:04:13,080
Si error.error es una instancia

48
00:04:13,080 --> 00:04:18,699
de ErrorEvent, por lo que si se trata de un evento de error que se produce,

49
00:04:18,699 --> 00:04:24,170
, error.message contendrá información.

50
00:04:24,170 --> 00:04:26,695
Así que vamos a establecer el mensaje de error en

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

52
00:04:35,630 --> 00:04:42,630
Si ese no es el caso, entonces eso significa que esto viene del lado del servidor,

53
00:04:42,630 --> 00:04:48,500
y así en ese caso, el mensaje de error se construye diciendo igual a comillas atrás,

54
00:04:48,500 --> 00:04:55,940
anote las comillas atrás aquí, y luego ${error.status}.

55
00:04:55,940 --> 00:04:59,450
Así que estamos extrayendo la información de estado de allí.

56
00:04:59,450 --> 00:05:03,956
Y luego, - error.statusText,

57
00:05:03,956 --> 00:05:07,710
si el StatusText existe, o

58
00:05:07,710 --> 00:05:12,226
que será una cadena vacía allí.

59
00:05:12,226 --> 00:05:17,691
Y luego también incluiremos el error.error en sí,

60
00:05:17,691 --> 00:05:23,866
el objeto de error completo en sí, justo allí en la cadena.

61
00:05:23,866 --> 00:05:29,320
Y luego usar eso como nuestro mensaje de error.

62
00:05:29,320 --> 00:05:33,484
Ahora, una vez que tengamos el mensaje de error,

63
00:05:33,484 --> 00:05:38,169
entonces podremos usar el throwError para

64
00:05:38,169 --> 00:05:43,520
devolver un error observable a nuestra aplicación.

65
00:05:44,940 --> 00:05:48,960
Así que lo que esto significa es que esto está lanzando un error en este punto,

66
00:05:48,960 --> 00:05:51,370
con el mensaje de error incluido allí.

67
00:05:51,370 --> 00:05:56,549
Así que esta cadena de mensaje de error se construye en base a la información

68
00:05:56,549 --> 00:06:02,243
que obtenemos aquí, ya sea porque el lado del servidor respondió con un error o

69
00:06:02,243 --> 00:06:05,111
el error podría deberse a otras razones.

70
00:06:05,111 --> 00:06:09,606
Así que en cualquier caso, construiremos un mensaje de error y luego lo devolveremos.

71
00:06:09,606 --> 00:06:12,493
Ahora, ¿dónde hacemos uso de este error de manejador?

72
00:06:12,493 --> 00:06:17,549
Ahora, dentro de nuestros servicios, por ejemplo el archivo dishservice.ts,

73
00:06:17,549 --> 00:06:22,866
vimos que antes cuando dijimos este HTTP get, y luego simplemente dijimos mapa,

74
00:06:22,866 --> 00:06:28,020
y luego asumimos que la respuesta es siempre una respuesta positiva.

75
00:06:28,020 --> 00:06:31,580
Pero supongamos que su respuesta no es positiva, y

76
00:06:31,580 --> 00:06:37,330
luego devuelve un error, entonces tenemos que detectar ese error.

77
00:06:37,330 --> 00:06:44,180
Para ayudarnos con esto, importamos el operador CatchError de rxjs,

78
00:06:44,180 --> 00:06:50,690
y luego también importamos el ProcessHTTPMsgService

79
00:06:50,690 --> 00:06:56,001
que acabamos de crear anteriormente en

80
00:06:56,001 --> 00:07:01,860
nuestro servicio dish para que podamos usar el método de error handle desde allí.

81
00:07:01,860 --> 00:07:08,060
Así que importamos esto desde el./process-httpmsg.service.

82
00:07:08,060 --> 00:07:12,670
Y luego, bajando al constructor,

83
00:07:12,670 --> 00:07:18,690
ahora inyectamos el servicio de mensajes HTTP de proceso

84
00:07:18,690 --> 00:07:22,910
en el constructor, junto con el cliente HTTP.

85
00:07:22,910 --> 00:07:27,080
Para que podamos hacer uso de este servicio,

86
00:07:27,080 --> 00:07:32,280
especialmente el método de error handle del servicio para manejar los errores

87
00:07:32,280 --> 00:07:37,710
que son devueltos por nuestro cliente HTTP allí.

88
00:07:38,930 --> 00:07:43,009
Ahora, una vez que hayamos configurado el constructor,

89
00:07:43,009 --> 00:07:46,988
a continuación, para manejar el error en el método GetDerrs para

90
00:07:46,988 --> 00:07:50,980
ejemplo, vamos a canalizar al método CatchErrors.

91
00:07:50,980 --> 00:07:54,762
Y luego llame al método HandleError después de

92
00:07:54,762 --> 00:08:00,446
this.processhttpMsgService dentro del método CatchError.

93
00:08:00,446 --> 00:08:07,817
Así que de esta manera Cuando el cliente HTTP devuelve un error, esto se procesará y

94
00:08:07,817 --> 00:08:12,875
se extraerá el mensaje de error apropiado.

95
00:08:12,875 --> 00:08:16,879
Y luego terminará arrojando el error a través de

96
00:08:16,879 --> 00:08:20,112
el método HandleError en ese punto.

97
00:08:20,112 --> 00:08:24,108
Del mismo modo, hagamos lo mismo con los métodos getDish y

98
00:08:24,108 --> 00:08:27,710
los getFeatureDish también.

99
00:08:27,710 --> 00:08:31,710
Ahora, cuando se trata del método getDish ids,

100
00:08:31,710 --> 00:08:36,200
ya que el método getDish ids está haciendo uso del método getDish,.

101
00:08:36,200 --> 00:08:40,670
Así que no necesitamos llamar explícitamente al HandleError porque si surge algún error

102
00:08:40,670 --> 00:08:45,560
, el método GetDerres ya habrá convertido ese error en una cadena de error.

103
00:08:45,560 --> 00:08:50,930
Así que solo necesitamos detectar el error y luego devolver el error de GetDish Ids.

104
00:08:50,930 --> 00:08:55,020
Normalmente, ni siquiera llegaríamos a este punto si surge un error, porque

105
00:08:55,020 --> 00:09:00,250
el método GetDRIESS habría manejado el error apropiadamente en ese punto.

106
00:09:00,250 --> 00:09:06,880
Así que una vez que hayamos configurado correctamente el servicio de platos,

107
00:09:06,880 --> 00:09:12,600
entonces podremos hacer uso del método catchError

108
00:09:12,600 --> 00:09:17,283
para tratar los errores que se produzcan.

109
00:09:17,283 --> 00:09:23,647
Ahora que hemos actualizado nuestro servicio para poder hacer frente a errores.

110
00:09:23,647 --> 00:09:27,486
¿Cómo manejamos esto dentro de nuestro propio componente?

111
00:09:27,486 --> 00:09:31,309
Así que dentro de un componente, por ejemplo, cuando vamos al componente de menú.

112
00:09:31,309 --> 00:09:34,557
Lo que nos damos cuenta es que cuando hacemos la suscripción,

113
00:09:34,557 --> 00:09:38,280
esperábamos que los platos fueran entregados a nosotros.

114
00:09:38,280 --> 00:09:40,750
Ahora, es posible que la instrucción de los platos,

115
00:09:40,750 --> 00:09:44,210
el error será entregado por el lanzamiento observable y

116
00:09:44,210 --> 00:09:47,430
entonces resulta en que el mensaje de error esté disponible para nosotros.

117
00:09:47,430 --> 00:09:52,540
Entonces, para lidiar con esa situación, introduciré una nueva variable

118
00:09:52,540 --> 00:09:59,088
llamada errMess en el componente de menú que es de tipo string.

119
00:09:59,088 --> 00:10:05,647
Y luego el método de suscripción en sí proporciona una forma de manejar errores.

120
00:10:05,647 --> 00:10:12,315
Así que el método de suscripción, en este momento solo hemos especificado una función aquí.

121
00:10:12,315 --> 00:10:17,142
También podemos especificar una segunda función que se llamará

122
00:10:17,142 --> 00:10:21,020
cuando el resultado del error.

123
00:10:21,020 --> 00:10:26,000
Entonces, en este caso, puedo proporcionar una segunda función de error diciendo,

124
00:10:26,000 --> 00:10:30,460
errMess, que es el valor devuelto en

125
00:10:30,460 --> 00:10:35,630
cuando el lanzamiento observable es hecho por DishService.

126
00:10:35,630 --> 00:10:43,850
Entonces, en este caso, diría this.errMess = <any>errMess, y eso es todo.

127
00:10:43,850 --> 00:10:48,709
Así que aquí lo que sucede es que cuando el

128
00:10:48,709 --> 00:10:53,082
observable es devuelto por el DishService es un Valor,

129
00:10:53,082 --> 00:10:57,707
entonces eso sería manejado por la primera parte.

130
00:10:57,707 --> 00:11:01,434
Si el observable es devuelto con el lanzamiento observable,

131
00:11:01,434 --> 00:11:03,874
entonces esta función será ejecutada.

132
00:11:03,874 --> 00:11:07,689
Y en esta función, estamos tomando el mensaje de error y

133
00:11:07,689 --> 00:11:12,949
luego capturando ese mensaje de error en esta cadena ErrMess que tenemos aquí.

134
00:11:12,949 --> 00:11:16,776
Así que ahora tenemos el mensaje de error disponible para nosotros, por lo que

135
00:11:16,776 --> 00:11:21,940
podemos mostrar este mensaje de error en la vista de este componente de menú.

136
00:11:21,940 --> 00:11:25,910
Entonces, ¿cómo mostramos esto en la vista de componentes del menú?

137
00:11:25,910 --> 00:11:33,700
Así que vamos al archivo de plantilla de componentes de menú, aquí vemos que si los platos no es nulo,

138
00:11:33,700 --> 00:11:39,200
entonces estamos mostrando el menú con todos los platos.

139
00:11:39,200 --> 00:11:46,550
Si los platos son nulos, entonces este spinner se muestra allí.

140
00:11:46,550 --> 00:11:50,903
Ahora, vamos a añadir en uno más aquí,

141
00:11:50,903 --> 00:11:55,107
incluso si el errMess que tenemos,

142
00:11:55,107 --> 00:11:59,912
la variable, no es nulo, entonces también

143
00:11:59,912 --> 00:12:04,866
el spinner debe estar oculto y luego,

144
00:12:04,866 --> 00:12:10,300
finalmente, añadir en un div más con un nGIF.

145
00:12:10,300 --> 00:12:15,077
Así que lo que esto hace es que esta última inmersión se mostrará en

146
00:12:15,077 --> 00:12:19,470
caso de que haya un error, y el mensaje de error.

147
00:12:19,470 --> 00:12:23,345
La cadena errMess está configurada para el mensaje de error.

148
00:12:23,345 --> 00:12:29,648
Así que en ese caso, simplemente diremos error h2,

149
00:12:29,648 --> 00:12:35,962
y luego solo voy a mostrar esa cadena como,

150
00:12:41,159 --> 00:12:46,586
Una cadena dentro de la vista allí, eso es todo.

151
00:12:46,586 --> 00:12:50,539
Puede hacer una forma más elaborada de mostrar el mensaje de error si lo desea

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

153
00:12:51,081 --> 00:12:54,118
Pero todo lo que voy a hacer es si hay un error,

154
00:12:54,118 --> 00:12:58,280
simplemente mostraré el error en la pantalla y luego mostraré un errMess.

155
00:12:58,280 --> 00:13:04,283
Incluso puedes peinarlo cambiando el color a rojo y

156
00:13:04,283 --> 00:13:09,875
así sucesivamente, pero lo dejaré así allí.

157
00:13:09,875 --> 00:13:16,477
Entonces, con esto, terminaremos mostrando el mensaje de error en la vista aquí.

158
00:13:16,477 --> 00:13:21,471
El mismo procedimiento también se puede utilizar con el componente de plato y

159
00:13:21,471 --> 00:13:26,764
también con el componente de hogar donde estamos accediendo al servicio de plato.

160
00:13:26,764 --> 00:13:32,692
Así que yendo al componente del plato, voy a hacer exactamente la misma cosa,

161
00:13:32,692 --> 00:13:42,680
así que dentro del componente del plato incluiré el, errMess aquí.

162
00:13:42,680 --> 00:13:45,654
Y luego aquí dentro de la suscripción,

163
00:13:45,654 --> 00:13:49,190
aquí es donde estamos recibiendo el valor del plato.

164
00:13:49,190 --> 00:13:50,260
Así que la primera parte,

165
00:13:50,260 --> 00:13:55,770
lo que ya hemos incluido se llamará si el observable devuelve un valor.

166
00:13:55,770 --> 00:14:00,770
Pero si no devuelve un valor, entonces tenemos que lidiar con el mensaje de error.

167
00:14:00,770 --> 00:14:04,360
Y usaremos exactamente la misma función de mensaje de error

168
00:14:04,360 --> 00:14:09,620
que hemos definido anteriormente en el componente de menú.

169
00:14:09,620 --> 00:14:15,926
Por lo tanto, diremos que this.errMess

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

171
00:14:20,791 --> 00:14:26,971
Eso es todo, por lo que mi componente de plato ahora está actualizado.

172
00:14:26,971 --> 00:14:31,521
Así que necesito actualizar el archivo de plantilla del componente del plato.

173
00:14:31,521 --> 00:14:34,317
Así que yendo al archivo de plantilla,

174
00:14:34,317 --> 00:14:40,240
vemos que vamos a mostrar el plato si el plato no es nulo.

175
00:14:40,240 --> 00:14:45,034
Y luego abajo aquí, estamos manejando la situación

176
00:14:45,034 --> 00:14:49,326
donde mostraremos el spinner si el plato es nulo.

177
00:14:49,326 --> 00:14:54,826
Así que permítanme agregar también, si el mensaje de error no es nulo, entonces debería

178
00:14:54,826 --> 00:15:00,235
mostrar el mensaje de error en lugar del plato aquí, ¿verdad?

179
00:15:00,235 --> 00:15:03,827
Entonces, déjame seguir adelante y

180
00:15:03,827 --> 00:15:10,075
copiar el código del componente de menú.

181
00:15:10,075 --> 00:15:12,790
Voy a usar exactamente el mismo código para

182
00:15:12,790 --> 00:15:16,171
el archivo de plantilla de componentes de detalle plato también.

183
00:15:16,171 --> 00:15:19,435
Así que, justo ahí.

184
00:15:19,435 --> 00:15:22,823
Déjame seguir adelante e insertar ese código aquí.

185
00:15:22,823 --> 00:15:26,130
Así que vemos que si errMess no es nulo,

186
00:15:26,130 --> 00:15:30,838
entonces este error se mostrará en la vista allí.

187
00:15:30,838 --> 00:15:31,938
Ahora mismo,

188
00:15:31,938 --> 00:15:36,502
yendo al componente de hogar tenemos que pasar por el mismo procedimiento.

189
00:15:36,502 --> 00:15:40,688
Ahora dentro del componente doméstico, por supuesto, tenemos plato, promoción y líder.

190
00:15:40,688 --> 00:15:47,625
Así que voy a definir separadas, cadenas para

191
00:15:47,625 --> 00:15:53,169
cada una de ellas porque el error podría surgir de cualquiera de las tres.

192
00:15:53,169 --> 00:15:57,927
En este momento solo estamos tratando con el plato que se obtiene desde el lado del servidor.

193
00:15:57,927 --> 00:16:04,000
Los dos restantes esperaré que hagas eso como parte de la, Asignación Final.

194
00:16:04,000 --> 00:16:10,252
Así que vamos, voy a decir cadena de error plato y luego bajar al código aquí.

195
00:16:10,252 --> 00:16:13,630
Y en el código aquí,

196
00:16:13,630 --> 00:16:18,146
simplemente diremos errmess.

197
00:16:18,146 --> 00:16:23,925
Este errmess plato = cualquier errmess

198
00:16:23,925 --> 00:16:30,130
, eso es todo.

199
00:16:30,130 --> 00:16:35,036
Y de manera similar, actualice los archivos de plantilla de componentes de inicio.

200
00:16:35,036 --> 00:16:40,215
Y yendo al archivo de plantilla de componentes del hogar,

201
00:16:40,215 --> 00:16:45,392
vemos que tenemos la bandeja de platos que se muestra allí,

202
00:16:45,392 --> 00:16:50,461
así que ahora para este debería decir o plato errMess.

203
00:16:50,461 --> 00:16:55,738
Y luego, abajo aquí, incluiré el código

204
00:16:55,738 --> 00:17:00,648
que he copiado del componente de menú, y

205
00:17:00,648 --> 00:17:04,600
luego lo actualizo a dish errMess aquí.

206
00:17:04,600 --> 00:17:11,957
Y también, actualiza esto a DisherrMess aquí, eso es todo.

207
00:17:11,957 --> 00:17:14,113
Guardemos los cambios.

208
00:17:14,113 --> 00:17:18,823
Al ir al navegador, verás que todo funciona igual que antes.

209
00:17:18,823 --> 00:17:24,249
El hogar, el componente de menú y también el componente de detalle del plato sin ningún problema.

210
00:17:24,249 --> 00:17:27,498
Ahora la pregunta es, ¿cómo causamos errores?

211
00:17:27,498 --> 00:17:35,566
Para causar errores, una posible forma de tratar el problema es ir y

212
00:17:35,566 --> 00:17:40,961
buscar una información inexistente del servidor.

213
00:17:40,961 --> 00:17:45,865
Déjame ir al servicio de platos y luego causar

214
00:17:45,865 --> 00:17:51,240
mi primer problema en el servicio de platos aquí.

215
00:17:51,240 --> 00:17:55,460
Así que para el plato destacado en lugar de platos, déjame cometer un error y

216
00:17:55,460 --> 00:17:59,470
decir dishees y luego guardar el cambio.

217
00:17:59,470 --> 00:18:04,160
Obviamente eso significa que esta url no existe.

218
00:18:04,160 --> 00:18:07,482
Entonces, ¿qué pasará si accede al servidor?

219
00:18:07,482 --> 00:18:11,514
Ir al navegador cuando ahora nos desplazamos,

220
00:18:11,514 --> 00:18:16,504
ves que el plato no se muestra aquí.

221
00:18:16,504 --> 00:18:19,570
Dice aquí Error 404 No encontrado.

222
00:18:19,570 --> 00:18:24,170
Esto se debe a que estamos tratando de acceder a la información del plato en

223
00:18:24,170 --> 00:18:28,424
la URL dishees que no existe en el lado del servidor.

224
00:18:28,424 --> 00:18:32,289
Así que verá cómo se muestra el mensaje de error aquí.

225
00:18:32,289 --> 00:18:36,172
Por supuesto, puede ser un poco más elegante y hacer más trabajo alrededor de esto y

226
00:18:36,172 --> 00:18:39,460
luego mostrar el mensaje de error de una manera más significativa.

227
00:18:39,460 --> 00:18:44,750
Pero el principio básico se resalta aquí diciendo que

228
00:18:44,750 --> 00:18:50,357
puede mostrar un mensaje de error si algo no se ejecuta correctamente

229
00:18:50,357 --> 00:18:56,194
cuando intenta acceder a la información desde el lado del servidor.

230
00:18:56,194 --> 00:19:02,373
Por supuesto, por lo que este es un error creado artificialmente en mi aplicación.

231
00:19:02,373 --> 00:19:07,020
Para causar otro tipo de error, he ido a mi ventana de terminal y

232
00:19:07,020 --> 00:19:12,295
luego apago el servidor para ver qué hará mi aplicación Angular en este caso.

233
00:19:12,295 --> 00:19:15,267
Así que después de apagar el servidor,

234
00:19:15,267 --> 00:19:20,330
vamos a ver lo que el componente de inicio mostrará en su vista.

235
00:19:21,830 --> 00:19:26,620
Así que yendo al componente de inicio, ahora vemos que debido a que mi aplicación Angular

236
00:19:26,620 --> 00:19:31,330
no puede acceder al servidor, ha causado un error nuevamente.

237
00:19:31,330 --> 00:19:37,450
Y luego muestra esta cadena allí para indicar que se ha producido algún error.

238
00:19:37,450 --> 00:19:40,560
Por supuesto, esta es una cadena críptica,

239
00:19:40,560 --> 00:19:45,010
no transmite nada significativo sobre cuál es la fuente del error.

240
00:19:45,010 --> 00:19:52,420
Pero eso es todo lo que pudimos conseguir intentando acceder al servidor en esta aplicación.

241
00:19:52,420 --> 00:19:56,260
Lo mismo, si voy al menú, verá el mismo tipo de cosas que se muestra

242
00:19:56,260 --> 00:19:59,010
, porque el servidor no está disponible, y por lo tanto

243
00:19:59,010 --> 00:20:02,150
la información del plato no se puede obtener del servidor.

244
00:20:02,150 --> 00:20:05,110
Con esto completamos este ejercicio.

245
00:20:05,110 --> 00:20:07,660
En este ejercicio, hemos aprendido cómo lidiar con errores

246
00:20:07,660 --> 00:20:13,040
que surgen durante la comunicación con el servidor cliente en nuestra aplicación Angular.

247
00:20:13,040 --> 00:20:18,333
Este es un buen momento para que hagas un commit de git con el mensaje http parte dos.

248
00:20:18,333 --> 00:20:24,225
[MÚSICA]