﻿1
00:00:01,270 --> 00:00:03,170
‫Instrutor: E agora, para

2
00:00:03,170 --> 00:00:05,760
‫terminar a seção, deixe-me mostrar um bom

3
00:00:05,760 --> 00:00:10,040
‫truque sobre como podemos basicamente executar muitas promessas ao mesmo tempo.

4
00:00:10,040 --> 00:00:12,690
‫Então, vamos supor que realmente quiséssemos obter três imagens

5
00:00:12,690 --> 00:00:15,200
‫aleatórias de cães e não apenas uma.

6
00:00:15,200 --> 00:00:17,053
‫Poderíamos fazer algo assim.

7
00:00:19,300 --> 00:00:23,740
‫Portanto, basta aguardar chamadas D3API, uma após a outra.

8
00:00:23,740 --> 00:00:26,600
‫Mas, por que realmente faríamos a segunda

9
00:00:26,600 --> 00:00:28,340
‫chamada de API

10
00:00:28,340 --> 00:00:31,690
‫esperar pela primeira e a terceira esperar pela segunda?

11
00:00:31,690 --> 00:00:34,320
‫Isso apenas adicionaria um tempo de espera desnecessário,

12
00:00:34,320 --> 00:00:36,060
‫quando poderíamos simplesmente executar

13
00:00:36,060 --> 00:00:38,100
‫todas essas promessas ao mesmo tempo.

14
00:00:38,100 --> 00:00:40,920
‫Deixe-me mostrar como podemos fazer isso.

15
00:00:40,920 --> 00:00:43,980
‫Portanto, a solução não será algo assim, mas,

16
00:00:43,980 --> 00:00:47,240
‫em vez disso, o que faremos é não esperar

17
00:00:47,240 --> 00:00:49,990
‫uma promessa neste momento, mas salvar a

18
00:00:49,990 --> 00:00:52,143
‫promessa em uma variável.

19
00:00:53,330 --> 00:00:56,100
‫Então, novamente, queremos agora salvar a

20
00:00:56,100 --> 00:00:59,470
‫promessa e não o valor resolvido da promessa.

21
00:00:59,470 --> 00:01:02,470
‫Então, vamos chamar este aqui de resultado um, pro,

22
00:01:02,470 --> 00:01:03,980
‫que é uma promessa.

23
00:01:03,980 --> 00:01:06,560
‫Portanto, lembre-se de que este aqui retorna uma promessa.

24
00:01:06,560 --> 00:01:08,570
‫Ok, e se não esperarmos, bem,

25
00:01:08,570 --> 00:01:11,980
‫vamos simplesmente salvar a promessa para a variável e

26
00:01:11,980 --> 00:01:13,970
‫não seu valor resolvido.

27
00:01:13,970 --> 00:01:16,763
‫Então vamos fazer isso aqui mais duas vezes.

28
00:01:18,350 --> 00:01:22,263
‫Portanto, um para cada imagem aleatória que quisermos.

29
00:01:24,200 --> 00:01:26,930
‫Ok, e assim, temos três promessas.

30
00:01:26,930 --> 00:01:29,520
‫Agora, para realmente obter os valores

31
00:01:29,520 --> 00:01:30,673
‫resolvidos, para

32
00:01:32,220 --> 00:01:36,430
‫as três imagens, criamos uma nova variável e agora o

33
00:01:38,210 --> 00:01:40,810
‫que esperamos é prometer ponto tudo, ok.

34
00:01:40,810 --> 00:01:44,560
‫E no ponto de promessa tudo, passamos uma série de promessas.

35
00:01:44,560 --> 00:01:47,700
‫E isso vai ser res um

36
00:01:47,700 --> 00:01:51,463
‫pro, res dois pro e res três pro.

37
00:01:52,670 --> 00:01:56,350
‫Ok, então novamente, nós temos essas três promessas e

38
00:01:56,350 --> 00:01:59,890
‫essas três variáveis e podemos passar um array

39
00:01:59,890 --> 00:02:03,520
‫contendo essas três promessas para a promessa ponto all.

40
00:02:03,520 --> 00:02:06,580
‫E se esperarmos isso, ele basicamente executará essas

41
00:02:06,580 --> 00:02:09,050
‫três promessas todas ao mesmo tempo

42
00:02:09,050 --> 00:02:11,290
‫e, em seguida, salvará os

43
00:02:11,290 --> 00:02:14,220
‫três valores resolvidos nesta matriz aqui, ok.

44
00:02:14,220 --> 00:02:17,090
‫Então, vamos realmente dar

45
00:02:17,090 --> 00:02:21,040
‫uma olhada nisso, nessa variável, ok.

46
00:02:21,040 --> 00:02:22,720
‫Portanto, isso aqui provavelmente nos dará um erro

47
00:02:22,720 --> 00:02:23,883
‫agora, mas esqueça isso.

48
00:02:25,630 --> 00:02:26,680
‫Sim, exatamente.

49
00:02:26,680 --> 00:02:29,130
‫Mas o que estou interessado aqui é

50
00:02:29,130 --> 00:02:32,210
‫ver se a variável all e o que eu

51
00:02:32,210 --> 00:02:36,370
‫quero mostrar a vocês é que realmente é um array, mas vejo que

52
00:02:36,370 --> 00:02:38,770
‫é muito grande aqui porque contém

53
00:02:38,770 --> 00:02:41,630
‫todas essas informações sobre todas essas solicitações http .

54
00:02:41,630 --> 00:02:43,300
‫Vamos dar uma olhada

55
00:02:43,300 --> 00:02:47,670
‫nesse tipo de coisa aqui mais tarde e observar as seções.

56
00:02:47,670 --> 00:02:50,380
‫Eu simplesmente não consigo, ah, aqui está o começo.

57
00:02:50,380 --> 00:02:53,600
‫Então, você vê que na verdade começa com este colchete, o

58
00:02:53,600 --> 00:02:56,070
‫que significa que é uma matriz, ok.

59
00:02:56,070 --> 00:02:58,810
‫Mas o que nos interessa aqui é que, em

60
00:02:58,810 --> 00:03:01,020
‫cada um desses elementos, estamos interessados na

61
00:03:01,020 --> 00:03:03,050
‫mensagem de pontos do corpo, certo?

62
00:03:03,050 --> 00:03:05,480
‫Então isso é o que costumávamos ler antes

63
00:03:05,480 --> 00:03:07,200
‫de cada um dos resultados.

64
00:03:07,200 --> 00:03:10,320
‫Portanto, precisamos agora criar um novo

65
00:03:10,320 --> 00:03:14,710
‫array que contenha apenas essas mensagens de pontos do corpo.

66
00:03:14,710 --> 00:03:15,623
‫Ok, faz sentido?

67
00:03:17,940 --> 00:03:20,090
‫E vamos usar mapas para isso.

68
00:03:20,090 --> 00:03:23,270
‫Então, imagens e todos os mapas de

69
00:03:23,270 --> 00:03:24,103
‫pontos.

70
00:03:24,103 --> 00:03:27,470
‫E espero que você esteja familiarizado com esses, todos esses

71
00:03:27,470 --> 00:03:28,700
‫métodos de array.

72
00:03:28,700 --> 00:03:32,270
‫Portanto, os mapas irão percorrer todo o array e

73
00:03:32,270 --> 00:03:35,960
‫o valor de segurança que retornamos em cada iteração

74
00:03:35,960 --> 00:03:39,260
‫em um novo array chamado imagens, certo.

75
00:03:39,260 --> 00:03:41,630
‫E o valor atual em cada

76
00:03:41,630 --> 00:03:44,260
‫iteração é chamado de elemento e o que

77
00:03:44,260 --> 00:03:47,123
‫retornaremos é a mensagem de elemento ponto corpo ponto.

78
00:03:48,900 --> 00:03:50,860
‫Ok, então isso é JavaScript

79
00:03:50,860 --> 00:03:54,760
‫básico e você já deve estar familiarizado com esse tipo de coisa.

80
00:03:54,760 --> 00:03:55,593
‫Tudo bem.

81
00:03:56,610 --> 00:04:00,223
‫Então, se olharmos agora para as imagens, isso deveria, bem,

82
00:04:02,200 --> 00:04:03,750
‫onde está isso?

83
00:04:03,750 --> 00:04:06,860
‫Oh, todos os mapas de pontos, oh, claro que não são mapas,

84
00:04:06,860 --> 00:04:08,653
‫são apenas mapas, desculpe por isso.

85
00:04:11,100 --> 00:04:14,200
‫E aqui, de fato, temos agora nosso array

86
00:04:14,200 --> 00:04:15,860
‫com essas três imagens.

87
00:04:15,860 --> 00:04:18,000
‫Então, ótimo, são três imagens diferentes.

88
00:04:18,000 --> 00:04:19,210
‫E agora tudo

89
00:04:19,210 --> 00:04:22,060
‫o que precisamos fazer é salvá-los em nosso arquivo.

90
00:04:22,060 --> 00:04:24,810
‫Então, agora ainda temos res como não definido e

91
00:04:24,810 --> 00:04:27,080
‫isso é porque ainda estamos tentando escrever

92
00:04:27,080 --> 00:04:29,130
‫res dot body dot message.

93
00:04:29,130 --> 00:04:32,473
‫Mas res não existe, então é por isso que recebemos esse erro.

94
00:04:33,620 --> 00:04:36,110
‫Então, em vez disso, o que queremos

95
00:04:37,129 --> 00:04:40,653
‫escrever aqui é uma string, basicamente, contendo essas três strings.

96
00:04:42,110 --> 00:04:45,823
‫Então o que fazemos é imagens com junção.

97
00:04:48,400 --> 00:04:50,360
‫E nos juntaremos a eles,

98
00:04:50,360 --> 00:04:52,770
‫colocando um novo caractere de linha entre eles.

99
00:04:52,770 --> 00:04:57,440
‫Então, barra invertida n significa uma nova linha, ok.

100
00:04:57,440 --> 00:05:00,750
‫E então isso basicamente vai colocar essas três cordas, cada

101
00:05:00,750 --> 00:05:03,430
‫uma, em uma nova linha, tudo bem.

102
00:05:03,430 --> 00:05:07,420
‫Então junte, junte as três strings em uma nova string

103
00:05:07,420 --> 00:05:11,520
‫e as junte usando um novo caractere de linha entre elas.

104
00:05:11,520 --> 00:05:14,823
‫Ok, então isso deve funcionar.

105
00:05:15,670 --> 00:05:16,503
‫Dê uma chance.

106
00:05:17,760 --> 00:05:21,220
‫E sim, agora diz que imagem de ponto aleatório salva em arquivo,

107
00:05:21,220 --> 00:05:22,390
‫sem mais erros.

108
00:05:22,390 --> 00:05:25,670
‫Vamos dar uma olhada, imagem de ponto, e funcionou, aqui vamos nós.

109
00:05:25,670 --> 00:05:27,290
‫E temos três imagens diferentes.

110
00:05:27,290 --> 00:05:32,010
‫Primeiro esse, depois esse cara e, finalmente, o terceiro.

111
00:05:32,010 --> 00:05:33,950
‫Então, três imagens diferentes de cães.

112
00:05:33,950 --> 00:05:36,200
‫E recebemos todos ao

113
00:05:36,200 --> 00:05:39,830
‫mesmo tempo usando a promessa ponto tudo, ok.

114
00:05:39,830 --> 00:05:43,320
‫Espero que tenha feito sentido e, de fato, espero que toda

115
00:05:43,320 --> 00:05:46,140
‫esta seção faça sentido para você, porque a partir

116
00:05:46,140 --> 00:05:48,680
‫de agora, vou assumir que você conhece

117
00:05:48,680 --> 00:05:51,430
‫o básico de promessas e uma única espera.

118
00:05:51,430 --> 00:05:53,290
‫E vamos começar a

119
00:05:53,290 --> 00:05:55,860
‫usá-los no resto do curso, supondo

120
00:05:55,860 --> 00:05:58,830
‫que você saiba o que estamos fazendo, certo.

121
00:05:58,830 --> 00:06:01,000
‫E o Node realmente suporta uma

122
00:06:01,000 --> 00:06:03,330
‫única espera desde sua versão sete vírgula

123
00:06:03,330 --> 00:06:05,773
‫seis, e agora podemos usá-lo sem nenhum problema.

