‫Instrutor: E agora, para
‫terminar a seção, deixe-me mostrar um bom
‫truque sobre como podemos basicamente executar muitas promessas ao mesmo tempo.
‫Então, vamos supor que realmente quiséssemos obter três imagens
‫aleatórias de cães e não apenas uma.
‫Poderíamos fazer algo assim.
‫Portanto, basta aguardar chamadas D3API, uma após a outra.
‫Mas, por que realmente faríamos a segunda
‫chamada de API
‫esperar pela primeira e a terceira esperar pela segunda?
‫Isso apenas adicionaria um tempo de espera desnecessário,
‫quando poderíamos simplesmente executar
‫todas essas promessas ao mesmo tempo.
‫Deixe-me mostrar como podemos fazer isso.
‫Portanto, a solução não será algo assim, mas,
‫em vez disso, o que faremos é não esperar
‫uma promessa neste momento, mas salvar a
‫promessa em uma variável.
‫Então, novamente, queremos agora salvar a
‫promessa e não o valor resolvido da promessa.
‫Então, vamos chamar este aqui de resultado um, pro,
‫que é uma promessa.
‫Portanto, lembre-se de que este aqui retorna uma promessa.
‫Ok, e se não esperarmos, bem,
‫vamos simplesmente salvar a promessa para a variável e
‫não seu valor resolvido.
‫Então vamos fazer isso aqui mais duas vezes.
‫Portanto, um para cada imagem aleatória que quisermos.
‫Ok, e assim, temos três promessas.
‫Agora, para realmente obter os valores
‫resolvidos, para
‫as três imagens, criamos uma nova variável e agora o
‫que esperamos é prometer ponto tudo, ok.
‫E no ponto de promessa tudo, passamos uma série de promessas.
‫E isso vai ser res um
‫pro, res dois pro e res três pro.
‫Ok, então novamente, nós temos essas três promessas e
‫essas três variáveis e podemos passar um array
‫contendo essas três promessas para a promessa ponto all.
‫E se esperarmos isso, ele basicamente executará essas
‫três promessas todas ao mesmo tempo
‫e, em seguida, salvará os
‫três valores resolvidos nesta matriz aqui, ok.
‫Então, vamos realmente dar
‫uma olhada nisso, nessa variável, ok.
‫Portanto, isso aqui provavelmente nos dará um erro
‫agora, mas esqueça isso.
‫Sim, exatamente.
‫Mas o que estou interessado aqui é
‫ver se a variável all e o que eu
‫quero mostrar a vocês é que realmente é um array, mas vejo que
‫é muito grande aqui porque contém
‫todas essas informações sobre todas essas solicitações http .
‫Vamos dar uma olhada
‫nesse tipo de coisa aqui mais tarde e observar as seções.
‫Eu simplesmente não consigo, ah, aqui está o começo.
‫Então, você vê que na verdade começa com este colchete, o
‫que significa que é uma matriz, ok.
‫Mas o que nos interessa aqui é que, em
‫cada um desses elementos, estamos interessados na
‫mensagem de pontos do corpo, certo?
‫Então isso é o que costumávamos ler antes
‫de cada um dos resultados.
‫Portanto, precisamos agora criar um novo
‫array que contenha apenas essas mensagens de pontos do corpo.
‫Ok, faz sentido?
‫E vamos usar mapas para isso.
‫Então, imagens e todos os mapas de
‫pontos.
‫E espero que você esteja familiarizado com esses, todos esses
‫métodos de array.
‫Portanto, os mapas irão percorrer todo o array e
‫o valor de segurança que retornamos em cada iteração
‫em um novo array chamado imagens, certo.
‫E o valor atual em cada
‫iteração é chamado de elemento e o que
‫retornaremos é a mensagem de elemento ponto corpo ponto.
‫Ok, então isso é JavaScript
‫básico e você já deve estar familiarizado com esse tipo de coisa.
‫Tudo bem.
‫Então, se olharmos agora para as imagens, isso deveria, bem,
‫onde está isso?
‫Oh, todos os mapas de pontos, oh, claro que não são mapas,
‫são apenas mapas, desculpe por isso.
‫E aqui, de fato, temos agora nosso array
‫com essas três imagens.
‫Então, ótimo, são três imagens diferentes.
‫E agora tudo
‫o que precisamos fazer é salvá-los em nosso arquivo.
‫Então, agora ainda temos res como não definido e
‫isso é porque ainda estamos tentando escrever
‫res dot body dot message.
‫Mas res não existe, então é por isso que recebemos esse erro.
‫Então, em vez disso, o que queremos
‫escrever aqui é uma string, basicamente, contendo essas três strings.
‫Então o que fazemos é imagens com junção.
‫E nos juntaremos a eles,
‫colocando um novo caractere de linha entre eles.
‫Então, barra invertida n significa uma nova linha, ok.
‫E então isso basicamente vai colocar essas três cordas, cada
‫uma, em uma nova linha, tudo bem.
‫Então junte, junte as três strings em uma nova string
‫e as junte usando um novo caractere de linha entre elas.
‫Ok, então isso deve funcionar.
‫Dê uma chance.
‫E sim, agora diz que imagem de ponto aleatório salva em arquivo,
‫sem mais erros.
‫Vamos dar uma olhada, imagem de ponto, e funcionou, aqui vamos nós.
‫E temos três imagens diferentes.
‫Primeiro esse, depois esse cara e, finalmente, o terceiro.
‫Então, três imagens diferentes de cães.
‫E recebemos todos ao
‫mesmo tempo usando a promessa ponto tudo, ok.
‫Espero que tenha feito sentido e, de fato, espero que toda
‫esta seção faça sentido para você, porque a partir
‫de agora, vou assumir que você conhece
‫o básico de promessas e uma única espera.
‫E vamos começar a
‫usá-los no resto do curso, supondo
‫que você saiba o que estamos fazendo, certo.
‫E o Node realmente suporta uma
‫única espera desde sua versão sete vírgula
‫seis, e agora podemos usá-lo sem nenhum problema.