Métodos como Promise.all, Promise.allSettled, Promise.racee os demais são realmente excelentes para gerenciar várias promessas, permitindo que nossos aplicativos adotem a assíncrona e o desempenho. No entanto, há momentos em que limitar o número de operações simultâneas pode ser útil, como limitação de taxa ou simplesmente não querer colocar um servidor sob estresse maciço.

O senhor tem um utilitário simples para limitar a simultaneidade do Promise: pool!

import pool from '@ricokahler/pool';

async function getQuotes() {
  const quotes = await pool({
    collection: [1, 2, 3, 4, 5],
    maxConcurrency: 2, // Limit 2 requests at a time
    task: async (symbol) => {
      const response = await fetch(`/quotes/${symbol}`);
      const json = await response.json();
      return json;
    },
  });

  console.log(quotes); // Array of the 5 quotes
}

pool permite que o senhor especifique quantas solicitações devem ser executadas simultaneamente. Se nenhum valor de simultaneidade for fornecido, pool age como o Promise.all.

A simultaneidade é um problema importante com a natureza assíncrona do JavaScript, portanto, é importante ter um método para agrupá-los e limitar as ações simultâneas.

  • 7 funções essenciais do JavaScript

    Lembro-me dos primeiros dias do JavaScript, quando era necessário ter uma função simples para quase tudo, porque os fornecedores de navegadores implementavam recursos de forma diferente, e não apenas recursos de ponta, mas recursos básicos, como addEventListener e attachEvent. Os tempos mudaram, mas ainda existem algumas funções que todo desenvolvedor deve…

  • Escreva um JavaScript melhor com promessas

    O senhor provavelmente já ouviu a conversa no bebedouro sobre como as promessas são o futuro. Todos os jovens descolados estão usando-as, mas o senhor não entende o que as torna tão especiais. O senhor não pode simplesmente usar um callback? Qual é o problema? Neste artigo, vamos…

  • Use gráficos personalizados de imagens ausentes usando o MooTools

    A falta de imagens em seu site pode fazer com que você ou sua empresa pareçam completamente amadores. Infelizmente, às vezes uma imagem é excluída ou corrompida sem o seu conhecimento. O senhor concorda comigo que o ícone “x vermelho” padrão do IE parece horrível, então por que não usar&#13 seu próprio gráfico de imagem ausente?

  • Plug-in de histórico do MooTools

    Um dos motivos pelos quais gosto tanto da tecnologia AJAX é que ela nos permite evitar carregamentos de página desnecessários. Por que fazer o download do cabeçalho, do rodapé e de outros dados estáticos várias vezes se esses dados específicos nunca mudam? É um desperdício de tempo, processamento e largura de banda. Infelizmente…