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

184
Vistas
Apollo Client RetryLink no tiene encabezados en respuesta

Implementé un RetryLink en mi Apollo Client de la siguiente manera:

 const retryLink = new RetryLink({ attempts: (count, _, error) => { return count <= 5 && !!error; }, delay: (count, operation) => { const {response: { headers }} = operation.getContext(); // headers is always empty return count * 1000 * Math.random(); } });

El objetivo es utilizar un encabezado personalizado enviado por el servidor para ajustar el retraso (el servidor tiene una tasa limitada). Sin embargo, el campo de encabezados en la respuesta siempre está vacío. La respuesta en sí está presente y tiene el siguiente aspecto:

 { body: (...) bodyUsed: true headers: Headers {} ok: false redirected: false status: 429 statusText: "" type: "cors" url: "https://graphql.endpoint.co/" }

Si uso otro enlace, el encabezado está allí como se esperaba. Así que algo como esto funciona:

 const afterwareLink = new ApolloLink((operation, forward) => { return forward(operation).map(response => { const context = operation.getContext(); const { response: { headers } } = context; if (headers) { console.log(headers.get('Retry-After')); } return response; }); });

El cliente se ve así por el bien de la integridad:

 const createApolloClient = () => { return new ApolloClient({ ssrMode: typeof window === 'undefined', link: from([retryLink, authLink.concat(httpLink)]), cache: new InMemoryCache() }); };

¿Alguien sabe cómo podría usar los encabezados de respuestas en un RetryLink ?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

A veces, una noche de sueño es todo lo que se necesita.

El enlace funciona como debería. El problema era que access-control-expose-headers no incluían Retry-After . Lo que no sabía es que las herramientas de desarrollo muestran todos los encabezados enviados por el servidor, pero los scripts solo pueden usar encabezados incluidos en access-control-expose-headers .

Esa es la razón por la que el encabezado siempre fue nulo.

about 4 years ago · Juan Pablo Isaza Denunciar
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