Cuando se usa _apollo-link-batch-http_, todas las solicitudes en un intervalo de tiempo específico se llaman por lotes. En nuestra aplicación, la mayoría de las solicitudes son rápidas, pero también tenemos algunas solicitudes que consumen mucho tiempo. Agrupar solicitudes lentas conocidas con otras daría como resultado una experiencia de usuario más pobre, ya que ahora todas las solicitudes tienen el mismo tiempo de respuesta que la más lenta. Es por eso que sería bueno si hubiera una devolución de llamada que pueda decidir si una solicitud debe ser disparada por lotes inmediatamente.
Puedes hacerlo con split
__links.js__
const batchHttpLink = new BatchHttpLink({
fetch: createApolloFetch({
constructOptions,
uri: process.env.REACT_APP_API_ENDPOINT,
}),
})
const normalHttpLink = createHttpLink({
uri: '/graphql',
credentials: 'same-origin',
})
export split(({getContext}) => getContext().noBatch, normalHttpLink, batchHttpLink)
Hacer una consulta, no usar un enlace por lotes
const ProfileWithData = graphql(CurrentUserForLayout, {
options: {
context: { noBatch: true }
},
})(Profile);
Aquí utilizo noBatch
en contexto para controlar si una consulta debe ser procesada por lotes. De forma predeterminada, todas las consultas se agruparán.
Gracias por el ejemplo @charleyw . cerraré esto ya que la pregunta parece haber sido respondida.
Comentario más útil
Puedes hacerlo con split
__links.js__
Hacer una consulta, no usar un enlace por lotes
Aquí utilizo
noBatch
en contexto para controlar si una consulta debe ser procesada por lotes. De forma predeterminada, todas las consultas se agruparán.