Este artigo Ă© para
Newfags . E mostra como, usando promessas atrasadas, vocĂȘ pode tornar a interface mais responsiva e reduzir o tempo de execução.
EntĂŁo, imagine que vocĂȘ tenha uma tarefa: implementar o botĂŁo "Editar perfil", clicando no qual um formulĂĄrio deve aparecer. E os valores para os campos deste formulĂĄrio sĂŁo carregados de forma assĂncrona no servidor.
Interface incompatĂvel
Um exemplo da implementação desse botão.
O que acontece aqui e por que essa opção é ruim
Como vocĂȘ deve ter notado, a resposta a um clique em um botĂŁo ocorre com um longo atraso. Porque Vamos olhar para o grĂĄfico:

Como vocĂȘ pode ver, nessa abordagem, o script
primeiro carrega os dados e executa o trabalho preparatĂłrio, e somente
entĂŁo altera a interface. Isso Ă© um erro.
A interface deve, de alguma forma, responder Ă s açÔes do usuĂĄrio o mais cedo possĂvel.
Interface responsiva
Vamos melhorar um pouco as coisas. No exemplo a seguir, criamos um formulĂĄrio e o exibimos
imediatamente . E somente
entĂŁo anexamos os manipuladores e carregamos os dados do servidor.
Vejamos nosso grĂĄfico:

Como vocĂȘ pode ver, o tempo de execução total nĂŁo mudou. No entanto, agora o usuĂĄrio vĂȘ a reação Ă s suas açÔes muito antes.
Promessa diferida
VocĂȘ sabia que nĂŁo precisa esperar pelo Promise no mesmo local em que o criou?
const promise = fetch()
Assim, vocĂȘ pode minimizar o tempo de inatividade - quando o navegador aguarda a conclusĂŁo da operação assĂncrona e nĂŁo estĂĄ ocupado com nada.
Execute operaçÔes assĂncronas longas o mais cedo possĂvel, mas espere que elas sejam concluĂdas o mais rĂĄpido possĂvel.
Agora, tendo em mente essa regra, voltemos ao nosso formulĂĄrio.
No exemplo a seguir, enviaremos uma solicitação para baixar dados imediatamente apĂłs um clique, mas nĂŁo esperaremos que eles sejam concluĂdos. Em vez de tempo de inatividade, enquanto aguardamos uma resposta do servidor, faremos um trabalho Ăștil - criar um formulĂĄrio e exibi-lo.
E aqui estĂĄ o que temos:

Como vocĂȘ pode ver no grĂĄfico, no inĂcio dois processos sĂŁo executados em paralelo. Assim, economizamos quase um segundo de tempo de execução.
Espero que este material seja Ăștil para alguĂ©m