﻿1
00:00:01,210 --> 00:00:02,370
‫Instructor: Ya aprendió

2
00:00:02,370 --> 00:00:03,980
‫a usar Async / Await,

3
00:00:03,980 --> 00:00:05,970
‫pero en realidad hay un poco

4
00:00:05,970 --> 00:00:09,240
‫más para aprender sobre cómo funcionan realmente las funciones Async.

5
00:00:09,240 --> 00:00:10,613
‫Así que hagámoslo ahora.

6
00:00:12,140 --> 00:00:15,080
‫Para comprender un poco mejor lo que sucede aquí, intentemos

7
00:00:15,080 --> 00:00:18,330
‫agregar algo de consola. registra después y

8
00:00:18,330 --> 00:00:21,333
‫antes de llamar a funciones Async aquí.

9
00:00:22,640 --> 00:00:24,520
‫Bien, consuela. log

10
00:00:26,310 --> 00:00:27,940
‫Así que el paso

11
00:00:29,686 --> 00:00:31,383
‫uno obtendrá fotos de

12
00:00:32,340 --> 00:00:33,360
‫perros, está bien.

13
00:00:33,360 --> 00:00:34,763
‫Y luego el número dos.

14
00:00:36,690 --> 00:00:37,730
‫Aquí

15
00:00:37,730 --> 00:00:42,410
‫solo digamos, terminamos de obtener fotos de perros.

16
00:00:42,410 --> 00:00:44,433
‫Bueno. Así que salvémoslo.

17
00:00:45,460 --> 00:00:47,570
‫Y vaya, qué pasó aquí.

18
00:00:47,570 --> 00:00:50,160
‫Tenemos estas dos consolas. registros antes

19
00:00:50,160 --> 00:00:54,120
‫de todos los registros que provienen de la función Async.

20
00:00:54,120 --> 00:00:56,346
‫Entonces tenemos el uno, dos para este y

21
00:00:56,346 --> 00:00:57,900
‫este y solo después

22
00:00:57,900 --> 00:00:59,610
‫de eso tenemos los registros que

23
00:00:59,610 --> 00:01:01,530
‫provienen de la imagen del perro.

24
00:01:01,530 --> 00:01:03,290
‫¿Es eso lo que esperabas?

25
00:01:03,290 --> 00:01:06,320
‫Entonces, si no, analicemos lo que sucedió aquí.

26
00:01:06,320 --> 00:01:09,650
‫Bueno, como te dije antes, esta función Async realmente

27
00:01:09,650 --> 00:01:11,940
‫se ejecuta en segundo plano.

28
00:01:11,940 --> 00:01:15,160
‫Porque así es como se supone que se

29
00:01:15,160 --> 00:01:17,150
‫comportan las funciones Async.

30
00:01:17,150 --> 00:01:18,960
‫¿Verdad, eso tiene mucho sentido?

31
00:01:18,960 --> 00:01:21,623
‫Así que no podemos simplemente detener el código aquí.

32
00:01:22,470 --> 00:01:24,920
‫Así que tan pronto como accedemos a

33
00:01:24,920 --> 00:01:29,440
‫esta función, no podemos simplemente detener la ejecución de nuestro hilo principal aquí.

34
00:01:29,440 --> 00:01:30,273
‫¿Derecha?

35
00:01:30,273 --> 00:01:32,750
‫Y esa es toda la filosofía de no bloquear

36
00:01:32,750 --> 00:01:34,120
‫el registro de eventos.

37
00:01:34,120 --> 00:01:37,270
‫Por lo tanto, necesitamos obtener algunas imágenes de perros de la API,

38
00:01:37,270 --> 00:01:40,550
‫pero esa no es una excusa para detener la ejecución sobre el código.

39
00:01:40,550 --> 00:01:42,840
‫Entonces para bloquear el registro de eventos.

40
00:01:42,840 --> 00:01:45,770
‫Entonces, como resultado, cuando el motor de secuencia de comandos

41
00:01:45,770 --> 00:01:48,480
‫de Java se detuvo, esta línea de código aquí,

42
00:01:48,480 --> 00:01:51,220
‫simplemente descargará la función get dog pic al fondo y

43
00:01:51,220 --> 00:01:53,230
‫pasará directamente a la siguiente línea.

44
00:01:53,230 --> 00:01:55,850
‫Entonces esta segunda consola. inicie sesión aquí.

45
00:01:55,850 --> 00:01:59,890
‫Por lo tanto, tiene sentido que primero se registre esta cadena aquí,

46
00:01:59,890 --> 00:02:01,990
‫luego comenzará a ejecutar esta función,

47
00:02:01,990 --> 00:02:05,270
‫luego de inmediato registrará esta línea de código y,

48
00:02:05,270 --> 00:02:08,470
‫mientras tanto, leemos este archivo en segundo plano, y

49
00:02:08,470 --> 00:02:10,390
‫tan pronto como sea listo,

50
00:02:10,390 --> 00:02:13,370
‫comenzará a imprimir este registro, este registro y

51
00:02:13,370 --> 00:02:14,920
‫también este registro.

52
00:02:14,920 --> 00:02:16,340
‫Entonces eso es exactamente lo que está sucediendo aquí.

53
00:02:16,340 --> 00:02:19,760
‫Uno dos, y luego los tres restantes.

54
00:02:19,760 --> 00:02:21,550
‫¿Tener sentido? Bueno.

55
00:02:21,550 --> 00:02:24,210
‫Luego vayamos un paso

56
00:02:24,210 --> 00:02:28,500
‫más allá y devolvamos algo de nuestra función Async.

57
00:02:28,500 --> 00:02:31,673
‫Así que voy a cambiar esto aquí a

58
00:02:31,673 --> 00:02:34,740
‫tres, para que desde esta función, podamos devolver

59
00:02:35,590 --> 00:02:40,570
‫una cadena que diga dos, bueno, digamos listo y luego agreguemos aquí

60
00:02:40,570 --> 00:02:43,410
‫nuevamente un emoji aquí para que

61
00:02:43,410 --> 00:02:46,430
‫aparezca un poco más en nuestra consola.

62
00:02:46,430 --> 00:02:47,853
‫Tan listo aquí.

63
00:02:48,770 --> 00:02:51,063
‫Y luego salvemos eso.

64
00:02:53,100 --> 00:02:55,883
‫Simplemente alguna variable, no importa cuál sea.

65
00:02:59,040 --> 00:03:01,520
‫Y luego registre x en la consola.

66
00:03:01,520 --> 00:03:03,260
‫Así que veamos qué pasa.

67
00:03:03,260 --> 00:03:06,050
‫Y ahora aquí tenemos esta extraña promesa

68
00:03:06,050 --> 00:03:10,800
‫pendiente en lugar de la cadena aquí que tal vez estábamos esperando.

69
00:03:10,800 --> 00:03:14,180
‫Entonces, ¿por qué está x aquí y no esta

70
00:03:14,180 --> 00:03:16,330
‫cadena, sino esta promesa aquí?

71
00:03:16,330 --> 00:03:19,310
‫Bueno, ¿recuerdas cómo dije al comienzo del

72
00:03:19,310 --> 00:03:21,860
‫último video que una función

73
00:03:21,860 --> 00:03:24,630
‫Async en realidad devuelve una promesa automáticamente?

74
00:03:24,630 --> 00:03:27,490
‫Bueno, esta es la prueba de eso.

75
00:03:27,490 --> 00:03:30,830
‫Entonces, en lugar de iniciar sesión listo en la consola en este punto,

76
00:03:30,830 --> 00:03:33,670
‫solo nos dice que x es una promesa que en este

77
00:03:33,670 --> 00:03:35,730
‫punto todavía se está ejecutando, por lo

78
00:03:35,730 --> 00:03:36,950
‫que aún está pendiente.

79
00:03:36,950 --> 00:03:39,140
‫Por eso dice pendiente aquí.

80
00:03:39,140 --> 00:03:42,460
‫Por lo tanto, el script java, por supuesto, no puede saber que

81
00:03:42,460 --> 00:03:45,390
‫x será esta cadena lista aquí en algún momento.

82
00:03:45,390 --> 00:03:48,350
‫Y así simplemente pasa a la siguiente consola. log tal

83
00:03:48,350 --> 00:03:50,870
‫como lo habíamos comentado antes.

84
00:03:50,870 --> 00:03:53,380
‫Y en el momento en que JavaScript realmente

85
00:03:53,380 --> 00:03:57,176
‫sabe que esta x aquí debería ser la tensión que devolvimos bien

86
00:03:57,176 --> 00:03:59,480
‫en ese momento, este código aquí hace

87
00:03:59,480 --> 00:04:01,570
‫tiempo que terminó de ejecutarse.

88
00:04:01,570 --> 00:04:04,160
‫Pero, ¿qué deberíamos hacer si realmente

89
00:04:04,160 --> 00:04:06,860
‫quisiéramos obtener ese valor de retorno aquí?

90
00:04:06,860 --> 00:04:09,930
‫Entonces, ¿qué pasa si realmente quisiéramos devolver esta cadena y

91
00:04:09,930 --> 00:04:11,950
‫registrarla a través de la consola?

92
00:04:11,950 --> 00:04:14,670
‫Bueno, tendríamos que tratar esta función Async

93
00:04:14,670 --> 00:04:15,980
‫como una promesa.

94
00:04:15,980 --> 00:04:18,310
‫Y entonces usaríamos el método DEN

95
00:04:18,310 --> 00:04:21,080
‫en él o nuevamente, usaríamos Async / Await.

96
00:04:21,080 --> 00:04:23,510
‫Déjame mostrarte cómo hacer eso.

97
00:04:23,510 --> 00:04:27,840
‫Entonces, en lugar de intentar guardar el valor devuelto

98
00:04:27,840 --> 00:04:32,513
‫en una variable, podemos usar el método DEN en ella.

99
00:04:34,400 --> 00:04:37,113
‫Y aquí es donde podemos llamarlo x.

100
00:04:38,750 --> 00:04:43,157
‫Así que consola. log x, al igual que lo que

101
00:04:43,157 --> 00:04:45,850
‫teníamos aquí y luego también haríamos este dentro del

102
00:04:45,850 --> 00:04:47,513
‫identificador DEN, ¿de acuerdo?

103
00:04:48,511 --> 00:04:49,920
‫Así que repasemos lo que hicimos aquí.

104
00:04:49,920 --> 00:04:53,550
‫Así que conseguir una foto de perro devuelve una promesa, ¿recuerdas eso?

105
00:04:53,550 --> 00:04:57,760
‫Y para cada uno de los que tenemos una promesa, utilizamos el método

106
00:04:57,760 --> 00:05:00,690
‫DEN para tener acceso a su valor futuro.

107
00:05:00,690 --> 00:05:04,120
‫Entonces, el valor que eventualmente regresará.

108
00:05:04,120 --> 00:05:08,050
‫En ese caso, esta será la cadena de dos listas.

109
00:05:08,050 --> 00:05:08,883
‫¿Okey?

110
00:05:08,883 --> 00:05:10,540
‫Entonces, si desea obtener

111
00:05:10,540 --> 00:05:14,520
‫x a eso, debemos usar el método DEN como lo hicimos aquí.

112
00:05:14,520 --> 00:05:17,370
‫Y solo después de eso, podemos registrar

113
00:05:17,370 --> 00:05:19,218
‫la tercera cadena aquí.

114
00:05:19,218 --> 00:05:21,010
‫Entonces, si lo guardamos ahora

115
00:05:21,010 --> 00:05:23,760
‫de esta manera, debería funcionar como se esperaba.

116
00:05:23,760 --> 00:05:24,890
‫Y sí lo hace.

117
00:05:24,890 --> 00:05:28,420
‫Entonces tenemos nuestro primer registro, luego todos los

118
00:05:28,420 --> 00:05:32,120
‫registros provenientes de nuestra función Async, luego el listo

119
00:05:32,120 --> 00:05:34,795
‫proviene de la línea 42 aquí.

120
00:05:34,795 --> 00:05:36,530
‫Y finalmente, el número 3. Perfecto.

121
00:05:36,530 --> 00:05:39,083
‫Y espero que tenga mucho sentido para ti.

122
00:05:40,416 --> 00:05:43,530
‫Ahora bien, ¿qué pasa si realmente hubo un error?

123
00:05:43,530 --> 00:05:45,853
‫Bueno, eso es un poco más difícil de manejar.

124
00:05:47,149 --> 00:05:50,410
‫Así que, de nuevo, provoquemos un error como lo hicimos antes.

125
00:05:50,410 --> 00:05:54,020
‫Pero ves que en realidad todavía ingresamos al

126
00:05:54,020 --> 00:05:55,630
‫método DEN aquí.

127
00:05:55,630 --> 00:05:58,640
‫Así que este bloque de aquí, está bien.

128
00:05:58,640 --> 00:06:03,230
‫Entonces, incluso si hubiera un error aquí en esta promesa,

129
00:06:03,230 --> 00:06:06,980
‫básicamente todavía se resuelve como una promesa exitosa.

130
00:06:06,980 --> 00:06:09,720
‫Entonces todavía devuelve este valor aquí.

131
00:06:09,720 --> 00:06:12,560
‫E incluso si agregamos nuestro controlador de captura aquí,

132
00:06:12,560 --> 00:06:14,373
‫eso no cambiará ese hecho.

133
00:06:16,040 --> 00:06:18,317
‫Bien, usemos catch aquí y

134
00:06:22,760 --> 00:06:26,620
‫luego usemos la consola. registre y registre el error

135
00:06:26,620 --> 00:06:30,300
‫aquí para que pueda ver que todavía no registró ningún error.

136
00:06:30,300 --> 00:06:33,620
‫Y eso es nuevamente porque esta promesa que

137
00:06:33,620 --> 00:06:36,270
‫proviene de esta función Async aún

138
00:06:36,270 --> 00:06:38,410
‫se marcará como exitosa.

139
00:06:38,410 --> 00:06:41,170
‫Pero si realmente desea marcarlo como

140
00:06:41,170 --> 00:06:44,450
‫rechazado, tendremos que hacer algo llamado lanzar un error.

141
00:06:44,450 --> 00:06:46,660
‫Así que hagámoslo aquí en este bloque de captura.

142
00:06:46,660 --> 00:06:50,250
‫Entonces, si hubo un error, no solo queremos registrarlo

143
00:06:50,250 --> 00:06:53,183
‫en la consola, también queremos lanzarlo.

144
00:06:54,830 --> 00:06:59,123
‫Entonces usamos una función de JavaScript incorporada llamada throw.

145
00:07:00,080 --> 00:07:02,460
‫Y con eso podemos lanzar un error.

146
00:07:02,460 --> 00:07:06,680
‫Así que esto marcará ahora toda esta función de esta promesa

147
00:07:06,680 --> 00:07:07,693
‫como rechazada.

148
00:07:08,600 --> 00:07:09,540
‫Bueno.

149
00:07:09,540 --> 00:07:12,570
‫En realidad, no solo registremos este error,

150
00:07:12,570 --> 00:07:17,210
‫simplemente hagamos un error para hacerlo un poco más visible, y

151
00:07:17,210 --> 00:07:19,932
‫quizás algo así como una explosión.

152
00:07:19,932 --> 00:07:20,843
‫Si, algo como esto.

153
00:07:22,250 --> 00:07:26,130
‫De acuerdo, entonces démosle una oportunidad y veamos qué sucede.

154
00:07:26,130 --> 00:07:29,380
‫Y bam, ahora tenemos nuestro error aquí en realidad.

155
00:07:29,380 --> 00:07:31,840
‫Entonces dice que no pude encontrar ese

156
00:07:31,840 --> 00:07:34,480
‫archivo, por lo que este registro proviene de

157
00:07:34,480 --> 00:07:38,250
‫este registro de captura aquí, pero al mismo tiempo arrojará un error.

158
00:07:38,250 --> 00:07:40,800
‫Y si arroja un error, marcará

159
00:07:40,800 --> 00:07:43,330
‫toda esta promesa como rechazada.

160
00:07:43,330 --> 00:07:47,410
‫Y es por eso que ingresamos el registro de capturas aquí.

161
00:07:47,410 --> 00:07:50,290
‫Lo que, por supuesto, activará a su vez

162
00:07:50,290 --> 00:07:52,690
‫esta consola. registro de este error.

163
00:07:52,690 --> 00:07:53,523
‫¿Okey?

164
00:07:53,523 --> 00:07:56,850
‫Y esto, por supuesto, es una capa completamente nueva de complejidad.

165
00:07:56,850 --> 00:07:58,240
‫Bueno.

166
00:07:58,240 --> 00:08:00,900
‫Pero sigue siendo muy importante comprender cómo funciona esto porque

167
00:08:00,900 --> 00:08:03,250
‫sucede en la vida real todo el tiempo.

168
00:08:03,250 --> 00:08:06,160
‫Por lo tanto, necesitamos devolver valores de funciones

169
00:08:06,160 --> 00:08:08,800
‫asíncronas todo el tiempo y, por lo

170
00:08:08,800 --> 00:08:11,880
‫tanto, es importante saber cómo manejar estos valores devueltos.

171
00:08:11,880 --> 00:08:15,100
‫En este caso, use DEN y catch.

172
00:08:15,100 --> 00:08:17,550
‫Ahora, el problema con esto es que mezcla

173
00:08:17,550 --> 00:08:19,610
‫promesas con Async / Await.

174
00:08:19,610 --> 00:08:21,780
‫Así que tenemos Async / Await

175
00:08:21,780 --> 00:08:24,400
‫aquí, luego, de repente, volvemos a usar

176
00:08:24,400 --> 00:08:26,440
‫DEN y nos ponemos aquí.

177
00:08:26,440 --> 00:08:30,020
‫Así que déjame mostrarte otro patrón de cómo hacerlo.

178
00:08:30,020 --> 00:08:32,830
‫Bien, entremos en nuestra parte aquí, no

179
00:08:32,830 --> 00:08:35,630
‫de esta manera, más así.

180
00:08:35,630 --> 00:08:39,460
‫Y entonces usemos Async / Await para implementar esta lógica.

181
00:08:39,460 --> 00:08:42,380
‫Ahora no queremos crear una función de nombre completamente nueva para esto,

182
00:08:42,380 --> 00:08:45,200
‫por lo que vamos a usar un patrón bien conocido que

183
00:08:45,200 --> 00:08:47,140
‫espero que sepas, que es un

184
00:08:47,140 --> 00:08:49,730
‫IIFE, por lo que una expresión de función invocada inmediatamente.

185
00:08:49,730 --> 00:08:53,363
‫Bien, entre paréntesis, definimos nuestra función.

186
00:08:55,880 --> 00:08:58,610
‫Así, y luego lo llamamos de inmediato.

187
00:08:58,610 --> 00:08:59,870
‫¿Recuérdalo?

188
00:08:59,870 --> 00:09:03,320
‫Entonces, en este caso, dado que queremos usar Async /

189
00:09:03,320 --> 00:09:06,660
‫Await, también decimos que es una función Async.

190
00:09:06,660 --> 00:09:09,070
‫Está bien, y esto parece un poco extraño

191
00:09:09,070 --> 00:09:11,940
‫aquí, pero si tomó, por ejemplo, mi curso de

192
00:09:11,940 --> 00:09:14,210
‫JavaScript, en realidad le resultará familiar.

193
00:09:14,210 --> 00:09:16,700
‫De acuerdo, de nuevo, declaras una función

194
00:09:16,700 --> 00:09:19,860
‫entre paréntesis y luego la llamas función de inmediato.

195
00:09:19,860 --> 00:09:22,470
‫Y así, de esta manera, no tiene que declarar

196
00:09:22,470 --> 00:09:26,190
‫una función de nombre completo nuevamente a la que luego llamará en

197
00:09:26,190 --> 00:09:27,650
‫algún momento más adelante.

198
00:09:27,650 --> 00:09:29,087
‫Bueno.

199
00:09:29,087 --> 00:09:31,070
‫Ahora que estamos usando Async /

200
00:09:31,070 --> 00:09:34,623
‫Await, estamos usando el patrón try it catch nuevamente, como antes.

201
00:09:36,346 --> 00:09:39,660
‫Así que fíjese, tenga acceso al error aquí, y

202
00:09:39,660 --> 00:09:42,261
‫en realidad no podemos omitirlo aquí.

203
00:09:42,261 --> 00:09:43,720
‫Entonces, incluso si no queremos usar

204
00:09:43,720 --> 00:09:45,330
‫este error, aún tenemos que escribirlo aquí.

205
00:09:45,330 --> 00:09:46,163
‫Bueno.

206
00:09:47,004 --> 00:09:48,420
‫En futuras versiones de

207
00:09:48,420 --> 00:09:51,310
‫JavaScript esto desaparecerá, pero por ahora debemos hacerlo así.

208
00:09:51,310 --> 00:09:53,503
‫Entonces aquí es donde estará este error.

209
00:09:56,290 --> 00:09:59,213
‫Y aquí arriba, tendremos todas estas consolas. registros.

210
00:10:00,660 --> 00:10:01,593
‫Este

211
00:10:03,870 --> 00:10:05,003
‫y este.

212
00:10:06,749 --> 00:10:09,790
‫Y ahora espero que sepa cómo obtener

213
00:10:09,790 --> 00:10:12,770
‫el valor de la función Async.

214
00:10:12,770 --> 00:10:14,340
‫Entonces sabes cómo hacer eso.

215
00:10:14,340 --> 00:10:17,230
‫De hecho, pausaré el video y te permitiré descubrir

216
00:10:17,230 --> 00:10:19,720
‫cómo hacerlo por tu cuenta, ¿de acuerdo?

217
00:10:19,720 --> 00:10:21,750
‫Así que acepta ese pequeño desafío y volveré

218
00:10:21,750 --> 00:10:22,583
‫en un segundo.

219
00:10:26,810 --> 00:10:30,270
‫Entonces, ¿lograste obtener esta cadena aquí, para que estos

220
00:10:30,270 --> 00:10:32,900
‫dos estén listos en la variable x

221
00:10:32,900 --> 00:10:34,510
‫como lo hicimos antes?

222
00:10:34,510 --> 00:10:35,973
‫¿Así que así de aquí?

223
00:10:37,030 --> 00:10:40,110
‫Así que es como lo hicimos antes.

224
00:10:40,110 --> 00:10:44,380
‫Declaras una variable y luego esperas la promesa.

225
00:10:44,380 --> 00:10:48,090
‫Y la promesa, en este caso, es conseguir una foto de perro.

226
00:10:48,090 --> 00:10:48,923
‫¿Okey?

227
00:10:48,923 --> 00:10:51,260
‫Entonces, esta función aquí es una función Async

228
00:10:51,260 --> 00:10:53,550
‫y, por lo tanto, devuelve una promesa.

229
00:10:53,550 --> 00:10:55,850
‫Y el valor de resultado de

230
00:10:55,850 --> 00:10:58,100
‫esa promesa es este valor

231
00:10:58,100 --> 00:11:01,400
‫aquí, que se devuelve, por lo que al esperar

232
00:11:01,400 --> 00:11:03,880
‫ese valor, el resultado será esta cadena.

233
00:11:03,880 --> 00:11:06,710
‫Así que lo almacenamos en x y luego, por supuesto,

234
00:11:06,710 --> 00:11:08,420
‫podemos registrarlo en la consola.

235
00:11:08,420 --> 00:11:12,260
‫Así que consola. log x.

236
00:11:12,260 --> 00:11:14,980
‫Luego, en caso de que haya un error, lo detectará y

237
00:11:14,980 --> 00:11:16,890
‫lo registrará en la consola aquí también.

238
00:11:16,890 --> 00:11:19,230
‫Si le damos un guardado

239
00:11:19,230 --> 00:11:22,555
‫ahora, entonces bam todavía obtenemos el error porque lo

240
00:11:22,555 --> 00:11:26,180
‫teníamos aquí, por lo que esa parte aún funciona.

241
00:11:26,180 --> 00:11:30,490
‫Arreglarlo, guardarlo y aquí vamos.

242
00:11:30,490 --> 00:11:32,790
‫Así que ahora está funcionando según lo previsto.

243
00:11:32,790 --> 00:11:35,470
‫Pero, de nuevo, con Async / Await es mucho más

244
00:11:35,470 --> 00:11:38,433
‫limpio, se ve mucho mejor y también es más fácil de entender.

245
00:11:39,315 --> 00:11:42,577
‫Y entonces no estamos mezclando Async / Await en un solo lugar

246
00:11:42,577 --> 00:11:45,430
‫aquí y luego usando DEN y atrapar aquí como lo

247
00:11:45,430 --> 00:11:47,543
‫hicimos antes con este fragmento de código.

248
00:11:47,543 --> 00:11:48,570
‫¿Okey?

249
00:11:48,570 --> 00:11:51,820
‫Entonces, en la vida real, este tipo de cosas ocurren todo el tiempo.

250
00:11:51,820 --> 00:11:54,450
‫Entonces, tenemos una función Async y la llamamos

251
00:11:54,450 --> 00:11:57,500
‫desde otra función Async, y tal vez incluso llamamos

252
00:11:57,500 --> 00:11:59,660
‫a otra función Async desde

253
00:11:59,660 --> 00:12:02,270
‫esa primera función Async, por lo que

254
00:12:02,270 --> 00:12:05,420
‫tenemos un montón de estas funciones Async interactuando entre sí.

255
00:12:05,420 --> 00:12:07,710
‫Por eso es muy importante que sepa cómo

256
00:12:07,710 --> 00:12:08,900
‫funciona todo esto.

257
00:12:08,900 --> 00:12:11,070
‫Y nuevamente, para recapitular, lo más

258
00:12:11,070 --> 00:12:14,160
‫importante que debe recordar es que una función Async

259
00:12:14,160 --> 00:12:17,430
‫devuelve automáticamente una promesa, y que el valor que devolvemos

260
00:12:17,430 --> 00:12:20,800
‫de una función Async será el valor de resultado de

261
00:12:20,800 --> 00:12:21,890
‫esa promesa.

262
00:12:21,890 --> 00:12:24,426
‫Y a partir de ahí, simplemente podemos manejarlo

263
00:12:24,426 --> 00:12:25,810
‫como una promesa más.

264
00:12:25,810 --> 00:12:29,070
‫Y eso es exactamente lo que hicimos aquí al

265
00:12:29,070 --> 00:12:31,300
‫esperar esa primera promesa que creamos.

266
00:12:31,300 --> 00:12:32,133
‫¿Okey?

267
00:12:32,133 --> 00:12:35,000
‫Así que, por favor, intente entender esto y

268
00:12:35,000 --> 00:12:37,010
‫asegúrese de entenderlo realmente.

269
00:12:37,010 --> 00:12:39,320
‫Porque durante el resto del curso voy

270
00:12:39,320 --> 00:12:42,270
‫a asumir que sabes cómo trabajar con estas cosas.

271
00:12:42,270 --> 00:12:44,730
‫Y esa es exactamente la razón por

272
00:12:44,730 --> 00:12:48,160
‫la que creé esta sección, para sacarla del camino antes de

273
00:12:48,160 --> 00:12:52,330
‫que realmente empecemos a trabajar sin JS y express, y todas estas cosas buenas.

274
00:12:52,330 --> 00:12:53,250
‫¿Okey?

275
00:12:53,250 --> 00:12:56,178
‫Así que casi terminamos con esta sección, solo hay una pequeña

276
00:12:56,178 --> 00:12:57,720
‫cosa que quiero mostrarles en

277
00:12:57,720 --> 00:12:58,653
‫el siguiente video.

