Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

189
Vistas
Cómo esperar datos de useLazyQuery

Estoy tratando de ejecutar dos solicitudes de graphQL secuencialmente, la primera me da los datos que necesito en los parámetros de la segunda. Y no sé esperar a la primera.

Mi programa es el siguiente:

Tengo la declaración de mis solicitudes de GraphQL:

 const [ addConfigurableProductToCart, { error: errorAddingSimpleProduct, loading: isAddSimpleLoading } ] = useMutation(ADD_CONFIGURABLE_MUTATION); const [getDataParentSku, { error, loading, data }] = useLazyQuery( GET_PARENT_SKU );

Y el flujo de trabajo principal está en esta función.

 const handleAddProductsToCart = useCallback( async csvProducts => { let tempSkuErrorList = []; for (let i = 0; i < csvProducts.length; i++) { const orParentSku = getDataVariable(csvProducts[i][0]); const variables = { cartId, quantity: parseInt(csvProducts[i][1], 10), sku: csvProducts[i][0], parentSku: orParentSku.then(res => { return res.products.items[0].orParentSku; }) }; try { await addConfigurableProductToCart({ variables }); } catch { tempSkuErrorList.push(csvProducts[i][0]); } } }, [ addConfigurableProductToCart, cartId, ] );

getDataVariable() es la función que llama a la primera consulta ( useLazyQuery() ). Y su contenido es:

 const getDataVariable = useCallback( async sku => { getDataParentSku({ variables: { sku: sku } }); return await data; }, [getDataParentSku, data] );

El error que me ha ido encontrando todo el tiempo es que cuando necesito los datos, está indefinido.

Otra opción fue la idea de usar esta biblioteca https://www.npmjs.com/package/graphql-lodash , para fusionar la consulta en una sola, pero está desactualizada.

Muchas gracias por tu ayuda.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda