Apollo-link: Laissez l'utilisateur d'apollo-link-batch-http décider quelle requête traiter par lots

Créé le 7 janv. 2018  ·  2Commentaires  ·  Source: apollographql/apollo-link

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.

Commentaire le plus utile

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.

Tous les 2 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes