﻿1
00:00:01,210 --> 00:00:02,370
‫Instrutor: Então, você

2
00:00:02,370 --> 00:00:03,980
‫já aprendeu como usar um Async

3
00:00:03,980 --> 00:00:05,970
‫/ Await, mas na verdade há um

4
00:00:05,970 --> 00:00:09,240
‫pouco mais para aprender sobre como as funções Async realmente funcionam.

5
00:00:09,240 --> 00:00:10,613
‫Então vamos fazer isso agora.

6
00:00:12,140 --> 00:00:15,080
‫Para entender um pouco melhor o que acontece aqui, vamos

7
00:00:15,080 --> 00:00:18,330
‫tentar adicionar algum console. logs depois e

8
00:00:18,330 --> 00:00:21,333
‫antes de chamar as funções Async aqui.

9
00:00:22,640 --> 00:00:24,520
‫Ok, então console. log

10
00:00:26,310 --> 00:00:27,940
‫Então, a primeira

11
00:00:29,686 --> 00:00:31,383
‫etapa obterá fotos de

12
00:00:32,340 --> 00:00:33,360
‫cães, certo.

13
00:00:33,360 --> 00:00:34,763
‫E então o número dois.

14
00:00:36,690 --> 00:00:37,730
‫Aqui,

15
00:00:37,730 --> 00:00:42,410
‫vamos apenas dizer, cansei de tirar fotos de cães.

16
00:00:42,410 --> 00:00:44,433
‫OK. Então, vamos salvar.

17
00:00:45,460 --> 00:00:47,570
‫E uau, o que aconteceu aqui.

18
00:00:47,570 --> 00:00:50,160
‫Temos esses dois consoles. logs antes

19
00:00:50,160 --> 00:00:54,120
‫de todos os logs provenientes da função Async.

20
00:00:54,120 --> 00:00:56,346
‫Então temos um, dois para este e

21
00:00:56,346 --> 00:00:57,900
‫este e só

22
00:00:57,900 --> 00:00:59,610
‫depois disso temos as toras

23
00:00:59,610 --> 00:01:01,530
‫provenientes da foto do cachorro.

24
00:01:01,530 --> 00:01:03,290
‫É isso que você esperava?

25
00:01:03,290 --> 00:01:06,320
‫Então, se não, vamos analisar o que aconteceu aqui.

26
00:01:06,320 --> 00:01:09,650
‫Bem, como eu disse antes, essa função Async realmente

27
00:01:09,650 --> 00:01:11,940
‫é executada em segundo plano.

28
00:01:11,940 --> 00:01:15,160
‫Pois bem, é assim que as funções Async

29
00:01:15,160 --> 00:01:17,150
‫simplesmente devem se comportar.

30
00:01:17,150 --> 00:01:18,960
‫Certo, isso faz todo o sentido?

31
00:01:18,960 --> 00:01:21,623
‫Portanto, não podemos simplesmente interromper o código aqui.

32
00:01:22,470 --> 00:01:24,920
‫Assim, assim que atingirmos esta

33
00:01:24,920 --> 00:01:29,440
‫função, não podemos simplesmente interromper a execução de nossa thread principal aqui.

34
00:01:29,440 --> 00:01:30,273
‫Direito?

35
00:01:30,273 --> 00:01:32,750
‫E essa é toda a filosofia de não bloquear

36
00:01:32,750 --> 00:01:34,120
‫o registro de eventos.

37
00:01:34,120 --> 00:01:37,270
‫Portanto, precisamos obter algumas imagens de cães da API, mas

38
00:01:37,270 --> 00:01:40,550
‫isso não é uma desculpa para interromper a execução sobre o código.

39
00:01:40,550 --> 00:01:42,840
‫Então, para bloquear o log de eventos.

40
00:01:42,840 --> 00:01:45,770
‫Portanto, como resultado, quando o mecanismo de script java parar,

41
00:01:45,770 --> 00:01:48,480
‫esta linha de código aqui, ela apenas descarregará a

42
00:01:48,480 --> 00:01:51,220
‫função get dog pic para o fundo e irá

43
00:01:51,220 --> 00:01:53,230
‫direto para a próxima linha.

44
00:01:53,230 --> 00:01:55,850
‫Portanto, este segundo console. faça login aqui.

45
00:01:55,850 --> 00:01:59,890
‫Portanto, faz sentido que primeiro esta string aqui seja registrada, em seguida,

46
00:01:59,890 --> 00:02:01,990
‫ela começará a executar esta função,

47
00:02:01,990 --> 00:02:05,270
‫então imediatamente irá registrar esta linha de código e nesse

48
00:02:05,270 --> 00:02:08,470
‫meio tempo, lemos este arquivo em segundo plano, e

49
00:02:08,470 --> 00:02:10,390
‫assim que isso for pronto,

50
00:02:10,390 --> 00:02:13,370
‫ele vai começar a imprimir esse log, esse log

51
00:02:13,370 --> 00:02:14,920
‫e também esse log.

52
00:02:14,920 --> 00:02:16,340
‫Então é exatamente isso que está acontecendo aqui.

53
00:02:16,340 --> 00:02:19,760
‫Um, dois, e depois os três restantes.

54
00:02:19,760 --> 00:02:21,550
‫Faz sentido? OK.

55
00:02:21,550 --> 00:02:24,210
‫Então, vamos dar um

56
00:02:24,210 --> 00:02:28,500
‫passo adiante e retornar algo de nossa função Async.

57
00:02:28,500 --> 00:02:31,673
‫Portanto, estou alterando isso aqui para três, para

58
00:02:31,673 --> 00:02:34,740
‫que a partir desta função, possamos retornar uma

59
00:02:35,590 --> 00:02:40,570
‫string que diz dois, bem, digamos pronto e, em seguida, vamos adicionar aqui

60
00:02:40,570 --> 00:02:43,410
‫novamente um emoji aqui para torná-lo

61
00:02:43,410 --> 00:02:46,430
‫um pouco mais pop em nosso console.

62
00:02:46,430 --> 00:02:47,853
‫Tão pronto aqui.

63
00:02:48,770 --> 00:02:51,063
‫E então vamos salvar isso.

64
00:02:53,100 --> 00:02:55,883
‫Simplesmente alguma variável, não importa o que seja.

65
00:02:59,040 --> 00:03:01,520
‫E então registre x no console.

66
00:03:01,520 --> 00:03:03,260
‫Então vamos ver o que acontece.

67
00:03:03,260 --> 00:03:06,050
‫E então agora temos essa

68
00:03:06,050 --> 00:03:10,800
‫promessa estranha pendente em vez da string que talvez estivéssemos esperando.

69
00:03:10,800 --> 00:03:14,180
‫Então, por que x está aqui e não esta

70
00:03:14,180 --> 00:03:16,330
‫string, mas esta promessa aqui?

71
00:03:16,330 --> 00:03:19,310
‫Bem, lembra como eu disse no início do

72
00:03:19,310 --> 00:03:21,860
‫último vídeo que uma função

73
00:03:21,860 --> 00:03:24,630
‫Async na verdade retorna uma promessa automaticamente?

74
00:03:24,630 --> 00:03:27,490
‫Bem, então esta aqui é a prova disso.

75
00:03:27,490 --> 00:03:30,830
‫Portanto, em vez de estar pronto para o registro no console neste ponto,

76
00:03:30,830 --> 00:03:33,670
‫ele apenas nos diz que x é uma promessa que

77
00:03:33,670 --> 00:03:35,730
‫neste ponto ainda está em execução e,

78
00:03:35,730 --> 00:03:36,950
‫portanto, ainda está pendente.

79
00:03:36,950 --> 00:03:39,140
‫É por isso que diz pendente aqui.

80
00:03:39,140 --> 00:03:42,460
‫Portanto, o java script pode, obviamente, não saber que x

81
00:03:42,460 --> 00:03:45,390
‫será essa string pronta aqui em algum ponto.

82
00:03:45,390 --> 00:03:48,350
‫E então ele simplesmente passa para o próximo console. log

83
00:03:48,350 --> 00:03:50,870
‫como havíamos discutido antes.

84
00:03:50,870 --> 00:03:53,380
‫E no momento em que o JavaScript realmente

85
00:03:53,380 --> 00:03:57,176
‫sabe que este x aqui deve ser a tensão que retornamos

86
00:03:57,176 --> 00:03:59,480
‫bem naquele ponto, a execução deste código

87
00:03:59,480 --> 00:04:01,570
‫aqui terminou há muito tempo.

88
00:04:01,570 --> 00:04:04,160
‫Mas o que devemos fazer se

89
00:04:04,160 --> 00:04:06,860
‫realmente quisermos obter esse valor de retorno aqui?

90
00:04:06,860 --> 00:04:09,930
‫E se realmente quiséssemos retornar essa string

91
00:04:09,930 --> 00:04:11,950
‫e registrá-la no console?

92
00:04:11,950 --> 00:04:14,670
‫Bem, teríamos que tratar essa função Async

93
00:04:14,670 --> 00:04:15,980
‫como uma promessa.

94
00:04:15,980 --> 00:04:18,310
‫E então usaríamos o método

95
00:04:18,310 --> 00:04:21,080
‫DEN nele ou novamente, usaríamos Async / Await.

96
00:04:21,080 --> 00:04:23,510
‫Deixe-me mostrar como fazer isso.

97
00:04:23,510 --> 00:04:27,840
‫Portanto, em vez de tentar salvar o valor

98
00:04:27,840 --> 00:04:32,513
‫retornado em uma variável, podemos usar o método DEN nela.

99
00:04:34,400 --> 00:04:37,113
‫E então aqui é onde podemos chamá-lo de x.

100
00:04:38,750 --> 00:04:43,157
‫Então console. log x então exatamente como o que

101
00:04:43,157 --> 00:04:45,850
‫tínhamos aqui e então também faríamos este dentro

102
00:04:45,850 --> 00:04:47,513
‫da alça DEN, ok?

103
00:04:48,511 --> 00:04:49,920
‫Então, vamos revisar o que fizemos aqui.

104
00:04:49,920 --> 00:04:53,550
‫Então get dog pic retorna uma promessa, lembra disso?

105
00:04:53,550 --> 00:04:57,760
‫E para cada um que temos uma promessa, usamos o método DEN

106
00:04:57,760 --> 00:05:00,690
‫para obter acesso ao seu valor futuro.

107
00:05:00,690 --> 00:05:04,120
‫Portanto, o valor que acabará por retornar.

108
00:05:04,120 --> 00:05:08,050
‫Nesse caso, esta será a sequência de dois prontos.

109
00:05:08,050 --> 00:05:08,883
‫OK?

110
00:05:08,883 --> 00:05:10,540
‫E se você quiser obter

111
00:05:10,540 --> 00:05:14,520
‫x para isso, precisamos usar o método DEN como acabamos de fazer aqui.

112
00:05:14,520 --> 00:05:17,370
‫E só depois disso podemos registrar a

113
00:05:17,370 --> 00:05:19,218
‫terceira string bem aqui.

114
00:05:19,218 --> 00:05:21,010
‫Portanto, se salvarmos agora

115
00:05:21,010 --> 00:05:23,760
‫desta forma, ele deverá funcionar conforme o esperado.

116
00:05:23,760 --> 00:05:24,890
‫E sim, faz.

117
00:05:24,890 --> 00:05:28,420
‫Portanto, temos nosso primeiro log, depois todos os logs

118
00:05:28,420 --> 00:05:32,120
‫provenientes de nossa função Async e, em seguida, o

119
00:05:32,120 --> 00:05:34,795
‫pronto vindo da linha 42 aqui.

120
00:05:34,795 --> 00:05:36,530
‫E, finalmente, o número 3. Perfeito.

121
00:05:36,530 --> 00:05:39,083
‫E espero que faça todo o sentido para você.

122
00:05:40,416 --> 00:05:43,530
‫Agora, o que acontece se realmente houver um erro?

123
00:05:43,530 --> 00:05:45,853
‫Bem, isso é um pouco mais difícil de lidar.

124
00:05:47,149 --> 00:05:50,410
‫Então, vamos novamente, causar um erro como fizemos antes.

125
00:05:50,410 --> 00:05:54,020
‫Mas você vê que, na verdade, ainda inserimos o

126
00:05:54,020 --> 00:05:55,630
‫método DEN aqui.

127
00:05:55,630 --> 00:05:58,640
‫Então, este bloco aqui, ok.

128
00:05:58,640 --> 00:06:03,230
‫Portanto, mesmo que haja um erro aqui nesta promessa, basicamente

129
00:06:03,230 --> 00:06:06,980
‫ainda se resolve como uma promessa bem-sucedida.

130
00:06:06,980 --> 00:06:09,720
‫Portanto, ele ainda retorna esse valor aqui.

131
00:06:09,720 --> 00:06:12,560
‫E mesmo se adicionarmos nosso manipulador de captura aqui,

132
00:06:12,560 --> 00:06:14,373
‫isso não mudará esse fato.

133
00:06:16,040 --> 00:06:18,317
‫Ok, então vamos usar o catch

134
00:06:22,760 --> 00:06:26,620
‫aqui e então o console. registre e registre o erro

135
00:06:26,620 --> 00:06:30,300
‫aqui para que você possa ver que ainda não registrou nenhum erro.

136
00:06:30,300 --> 00:06:33,620
‫E isso de novo porque esta promessa

137
00:06:33,620 --> 00:06:36,270
‫vinda desta função Async ainda

138
00:06:36,270 --> 00:06:38,410
‫será marcada como bem-sucedida.

139
00:06:38,410 --> 00:06:41,170
‫Mas se você realmente deseja marcá-lo como

140
00:06:41,170 --> 00:06:44,450
‫rejeitado, teremos que fazer algo chamado lançar um erro.

141
00:06:44,450 --> 00:06:46,660
‫Então, vamos fazer isso aqui neste bloco catch.

142
00:06:46,660 --> 00:06:50,250
‫Portanto, se houver um erro, não queremos apenas

143
00:06:50,250 --> 00:06:53,183
‫registrá-lo no console, mas também lançá-lo.

144
00:06:54,830 --> 00:06:59,123
‫Portanto, usamos uma função embutida em JavaScript chamada throw.

145
00:07:00,080 --> 00:07:02,460
‫E com isso podemos lançar um erro.

146
00:07:02,460 --> 00:07:06,680
‫Portanto, isso agora marcará toda a função dessa promessa

147
00:07:06,680 --> 00:07:07,693
‫como rejeitada.

148
00:07:08,600 --> 00:07:09,540
‫OK.

149
00:07:09,540 --> 00:07:12,570
‫Na verdade, não vamos apenas registrar esse

150
00:07:12,570 --> 00:07:17,210
‫erro, vamos simplesmente fazer o erro para torná-lo um pouco mais visível,

151
00:07:17,210 --> 00:07:19,932
‫e algo como uma explosão, talvez.

152
00:07:19,932 --> 00:07:20,843
‫Sim, algo assim.

153
00:07:22,250 --> 00:07:26,130
‫Ok, vamos salvar e ver o que acontece.

154
00:07:26,130 --> 00:07:29,380
‫E bam, agora temos nosso erro aqui, na verdade.

155
00:07:29,380 --> 00:07:31,840
‫Diz que não consegui encontrar esse

156
00:07:31,840 --> 00:07:34,480
‫arquivo, então este log está vindo deste log

157
00:07:34,480 --> 00:07:38,250
‫de captura aqui, mas ao mesmo tempo, ele gerará um erro.

158
00:07:38,250 --> 00:07:40,800
‫E se gerar um erro, isso marcará

159
00:07:40,800 --> 00:07:43,330
‫toda a promessa como rejeitada.

160
00:07:43,330 --> 00:07:47,410
‫E é por isso que inserimos o registro de captura aqui.

161
00:07:47,410 --> 00:07:50,290
‫O que irá então, é claro, acionar

162
00:07:50,290 --> 00:07:52,690
‫este console. log deste erro.

163
00:07:52,690 --> 00:07:53,523
‫OK?

164
00:07:53,523 --> 00:07:56,850
‫E isso, claro, é uma nova camada de complexidade.

165
00:07:56,850 --> 00:07:58,240
‫OK.

166
00:07:58,240 --> 00:08:00,900
‫Mas ainda é muito importante entender como isso funciona, porque

167
00:08:00,900 --> 00:08:03,250
‫isso acontece na vida real o tempo todo.

168
00:08:03,250 --> 00:08:06,160
‫Portanto, precisamos retornar valores de funções Async o

169
00:08:06,160 --> 00:08:08,800
‫tempo todo e, portanto, é importante

170
00:08:08,800 --> 00:08:11,880
‫saber como realmente lidar com esses valores retornados.

171
00:08:11,880 --> 00:08:15,100
‫Nesse caso, usando DEN e catch.

172
00:08:15,100 --> 00:08:17,550
‫Agora, o problema com isso é que ele

173
00:08:17,550 --> 00:08:19,610
‫mistura promessas com Async / Await.

174
00:08:19,610 --> 00:08:21,780
‫Temos Async / Await aqui

175
00:08:21,780 --> 00:08:24,400
‫e, de repente, estamos voltando a usar

176
00:08:24,400 --> 00:08:26,440
‫DEN e pegando aqui.

177
00:08:26,440 --> 00:08:30,020
‫Então, deixe-me mostrar outro padrão de como fazer isso.

178
00:08:30,020 --> 00:08:32,830
‫Ok, então vamos entrar nesta parte aqui

179
00:08:32,830 --> 00:08:35,630
‫não desta forma, mais assim.

180
00:08:35,630 --> 00:08:39,460
‫E então vamos usar Async / Await para implementar essa lógica.

181
00:08:39,460 --> 00:08:42,380
‫Agora, não queremos criar uma função de nome totalmente nova

182
00:08:42,380 --> 00:08:45,200
‫para isso e, portanto, usaremos um padrão bem conhecido que

183
00:08:45,200 --> 00:08:47,140
‫espero que você conheça, que é

184
00:08:47,140 --> 00:08:49,730
‫um IIFE, portanto, uma expressão de função imediatamente invocada.

185
00:08:49,730 --> 00:08:53,363
‫Ok, então entre parênteses, definimos nossa função.

186
00:08:55,880 --> 00:08:58,610
‫Assim, e então ligamos imediatamente.

187
00:08:58,610 --> 00:08:59,870
‫Lembre-se disso?

188
00:08:59,870 --> 00:09:03,320
‫Então, neste caso, como queremos usar Async / Await,

189
00:09:03,320 --> 00:09:06,660
‫também dizemos que é uma função Async.

190
00:09:06,660 --> 00:09:09,070
‫Ok, isso parece um pouco estranho aqui, mas

191
00:09:09,070 --> 00:09:11,940
‫se você pegou por exemplo meu curso de JavaScript, isso

192
00:09:11,940 --> 00:09:14,210
‫parecerá familiar para você na verdade.

193
00:09:14,210 --> 00:09:16,700
‫Ok, então novamente, você declara uma

194
00:09:16,700 --> 00:09:19,860
‫função entre parênteses e a chama de função imediatamente.

195
00:09:19,860 --> 00:09:22,470
‫E dessa forma, você não precisa declarar

196
00:09:22,470 --> 00:09:26,190
‫uma função de nome inteira novamente para chamar em algum

197
00:09:26,190 --> 00:09:27,650
‫momento mais tarde.

198
00:09:27,650 --> 00:09:29,087
‫OK.

199
00:09:29,087 --> 00:09:31,070
‫Agora, como estamos usando Async /

200
00:09:31,070 --> 00:09:34,623
‫Await, estamos usando o padrão try it catch novamente, como antes.

201
00:09:36,346 --> 00:09:39,660
‫Então pegue, tenha acesso ao erro aqui, e na

202
00:09:39,660 --> 00:09:42,261
‫verdade não podemos omitir isso aqui.

203
00:09:42,261 --> 00:09:43,720
‫Portanto, mesmo que não queiramos usar

204
00:09:43,720 --> 00:09:45,330
‫esse erro, ainda temos que escrevê-lo aqui.

205
00:09:45,330 --> 00:09:46,163
‫OK.

206
00:09:47,004 --> 00:09:48,420
‫Em versões futuras de

207
00:09:48,420 --> 00:09:51,310
‫JavaScript, isso terá desaparecido, mas por enquanto precisamos fazer assim.

208
00:09:51,310 --> 00:09:53,503
‫Então é aqui que estará o erro.

209
00:09:56,290 --> 00:09:59,213
‫E aqui em cima, teremos todos esses consoles. Histórico.

210
00:10:00,660 --> 00:10:01,593
‫Este aqui,

211
00:10:03,870 --> 00:10:05,003
‫e este aqui.

212
00:10:06,749 --> 00:10:09,790
‫E agora espero que você saiba como realmente

213
00:10:09,790 --> 00:10:12,770
‫obter o valor da função Async.

214
00:10:12,770 --> 00:10:14,340
‫Então você sabe como fazer isso.

215
00:10:14,340 --> 00:10:17,230
‫Na verdade, vou pausar o vídeo e permitir que

216
00:10:17,230 --> 00:10:19,720
‫você descubra como fazer isso sozinho, certo?

217
00:10:19,720 --> 00:10:21,750
‫Então aceite esse pequeno desafio e eu estarei de volta

218
00:10:21,750 --> 00:10:22,583
‫em um segundo.

219
00:10:26,810 --> 00:10:30,270
‫Você conseguiu colocar essa string aqui, então esses dois

220
00:10:30,270 --> 00:10:32,900
‫prontos para a variável x exatamente como

221
00:10:32,900 --> 00:10:34,510
‫tínhamos feito antes?

222
00:10:34,510 --> 00:10:35,973
‫Então, apenas assim aqui?

223
00:10:37,030 --> 00:10:40,110
‫Então, é exatamente como fizemos antes.

224
00:10:40,110 --> 00:10:44,380
‫Você declara uma variável e então aguarda a promessa.

225
00:10:44,380 --> 00:10:48,090
‫E a promessa, neste caso, é tirar a foto do cachorro.

226
00:10:48,090 --> 00:10:48,923
‫OK?

227
00:10:48,923 --> 00:10:51,260
‫Portanto, esta função aqui é uma função

228
00:10:51,260 --> 00:10:53,550
‫Async e, portanto, retorna uma promessa.

229
00:10:53,550 --> 00:10:55,850
‫E o valor do resultado dessa

230
00:10:55,850 --> 00:10:58,100
‫promessa é este valor aqui,

231
00:10:58,100 --> 00:11:01,400
‫que é retornado e, portanto, ao esperar por esse

232
00:11:01,400 --> 00:11:03,880
‫valor, o resultado será esta string.

233
00:11:03,880 --> 00:11:06,710
‫Então, nós armazenamos isso em x e então podemos

234
00:11:06,710 --> 00:11:08,420
‫logar no console, é claro.

235
00:11:08,420 --> 00:11:12,260
‫Então console. log x.

236
00:11:12,260 --> 00:11:14,980
‫Então, caso haja um erro, ele irá detectá-lo e

237
00:11:14,980 --> 00:11:16,890
‫registrá-lo no console aqui também.

238
00:11:16,890 --> 00:11:19,230
‫Se salvarmos agora, bam,

239
00:11:19,230 --> 00:11:22,555
‫obteremos o erro ainda porque o

240
00:11:22,555 --> 00:11:26,180
‫tínhamos aqui, então essa parte ainda funciona.

241
00:11:26,180 --> 00:11:30,490
‫Consertando, salvando e aqui vamos nós.

242
00:11:30,490 --> 00:11:32,790
‫Portanto, agora está funcionando conforme o esperado.

243
00:11:32,790 --> 00:11:35,470
‫Mas, novamente, com Async / Await é muito mais

244
00:11:35,470 --> 00:11:38,433
‫limpo, parece muito melhor e também é mais fácil de entender.

245
00:11:39,315 --> 00:11:42,577
‫E então não estamos misturando Async / Await em um lugar

246
00:11:42,577 --> 00:11:45,430
‫aqui e então usando DEN e catch aqui como fizemos

247
00:11:45,430 --> 00:11:47,543
‫antes com este pedaço de código.

248
00:11:47,543 --> 00:11:48,570
‫OK?

249
00:11:48,570 --> 00:11:51,820
‫Então, na vida real, esse tipo de coisa acontece o tempo todo.

250
00:11:51,820 --> 00:11:54,450
‫Portanto, temos uma função Async e a

251
00:11:54,450 --> 00:11:57,500
‫chamamos de outra função Async, e talvez até

252
00:11:57,500 --> 00:11:59,660
‫tenhamos chamado outra função Async

253
00:11:59,660 --> 00:12:02,270
‫dessa primeira função Async, então temos um

254
00:12:02,270 --> 00:12:05,420
‫monte dessas funções Async interagindo umas com as outras.

255
00:12:05,420 --> 00:12:07,710
‫E por isso é muito importante que você saiba

256
00:12:07,710 --> 00:12:08,900
‫como tudo isso funciona.

257
00:12:08,900 --> 00:12:11,070
‫E, novamente, para recapitular, a coisa

258
00:12:11,070 --> 00:12:14,160
‫mais importante a lembrar é que uma função Async

259
00:12:14,160 --> 00:12:17,430
‫retorna automaticamente uma promessa e que o valor que

260
00:12:17,430 --> 00:12:20,800
‫retornamos de uma função Async será o valor de resultado

261
00:12:20,800 --> 00:12:21,890
‫dessa promessa.

262
00:12:21,890 --> 00:12:24,426
‫E então, a partir daí, podemos simplesmente lidar com isso

263
00:12:24,426 --> 00:12:25,810
‫como mais uma promessa.

264
00:12:25,810 --> 00:12:29,070
‫E isso é exatamente o que fizemos aqui, aguardando

265
00:12:29,070 --> 00:12:31,300
‫a primeira promessa que criamos.

266
00:12:31,300 --> 00:12:32,133
‫OK?

267
00:12:32,133 --> 00:12:35,000
‫Então, por favor, tente entender isso e certifique-se

268
00:12:35,000 --> 00:12:37,010
‫de que você realmente entende.

269
00:12:37,010 --> 00:12:39,320
‫Porque ao longo do resto do curso

270
00:12:39,320 --> 00:12:42,270
‫vou presumir que você sabe como trabalhar com essas coisas.

271
00:12:42,270 --> 00:12:44,730
‫E é exatamente por isso que

272
00:12:44,730 --> 00:12:48,160
‫criei esta seção, para tirá-la do caminho antes de realmente

273
00:12:48,160 --> 00:12:52,330
‫começarmos a trabalhar sem JS e Express, e todas essas coisas boas.

274
00:12:52,330 --> 00:12:53,250
‫OK?

275
00:12:53,250 --> 00:12:56,178
‫Então, estamos quase terminando esta seção, há apenas uma pequena coisa

276
00:12:56,178 --> 00:12:57,720
‫que quero mostrar a vocês

277
00:12:57,720 --> 00:12:58,653
‫no próximo vídeo.

