Lors de l'utilisation de _apollo-link-batch-http_, toutes les requêtes dans un intervalle de temps spécifique sont appelées par lots. Dans notre application, la plupart des demandes sont rapides, mais nous avons également des demandes qui prennent beaucoup de temps. Le regroupement des requêtes lentes connues avec d'autres entraînerait une expérience utilisateur plus médiocre, car désormais toutes les requêtes ont le même temps de réponse que la plus lente. C'est pourquoi ce serait bien s'il y avait un rappel qui peut décider si une demande doit être déclenchée par lots et immédiatement.
Vous pouvez le faire avec 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)
Faire une requête sans utiliser de lien de lot
const ProfileWithData = graphql(CurrentUserForLayout, {
options: {
context: { noBatch: true }
},
})(Profile);
Ici, j'utilise noBatch
en contexte pour contrôler si une requête doit être groupée. Par défaut, toutes les requêtes seront groupées.
Merci pour l'exemple @charleyw - je vais continuer et fermer ceci car la question semble avoir reçu une réponse.
Commentaire le plus utile
Vous pouvez le faire avec split
__links.js__
Faire une requête sans utiliser de lien de lot
Ici, j'utilise
noBatch
en contexte pour contrôler si une requête doit être groupée. Par défaut, toutes les requêtes seront groupées.