Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] useQueries é um mecanismo de concorrência ou paralelismo ?

O paralelismo, explicando de forma rude, consiste na execução de tarefas ao mesmo tempo, de forma simultânea, diferentemente da concorrência, que alterna tão rápido entre as tarefas, que elas aparentam ser executadas concomitantemente. No entanto, na verdade, são processadas em momentos distintos, uma de cada vez.

Baseado nisso me parece um erro afirmar na aula "Queries paralelas com useQueries" do módulo 04, que existe paralelismo nessa execução na useQueries.

  const postRatingQueries = useQueries({
    queries:
      posts?.data.length > 0
        ? posts.data.map((post) => ({
            queryKey: ["postHome", post.id],
            queryFn: () => fetchPostRating({ postId: post.id }),
            enabled: !!post.id,
          }))
        : [],
  });

Gostaria de saber se faz sentido isso ? Ou se eu estou errado e realmente existe paralelismo na execução do useQueries ?

1 resposta
solução!

Oi Taciano!

A diferença entre concorrência e paralelismo realmente pode gerar dúvidas, especialmente no contexto do useQueries do React Query.

O useQueries permite disparar múltiplas requisições simultaneamente, e isso é possível graças ao modelo assíncrono do JavaScript e ao gerenciamento feito pelo navegador. Embora o JavaScript seja single-threaded, operações como requisições HTTP são delegadas ao ambiente do navegador (ou do Node.js), que consegue lidar com essas tarefas de forma assíncrona, iniciando várias ao mesmo tempo e processando as respostas conforme elas chegam.

Esse comportamento se alinha mais ao conceito de concorrência, onde múltiplas tarefas são iniciadas e administradas em paralelo do ponto de vista do tempo, mas não necessariamente executadas ao mesmo tempo no sentido de múltiplas threads. O paralelismo, por outro lado, envolve múltiplos núcleos de processamento executando tarefas literalmente ao mesmo tempo — o que não é o caso aqui.

Ou seja, sua percepção está certa: o termo "paralelismo" pode não ser o mais adequado nesse contexto. O useQueries lida com requisições de forma concorrente, aproveitando a natureza assíncrona da plataforma.

Espero ter esclarecido! Bons estudos por aí.

Sucesso

Imagem da comunidade