Apollo-link: Lassen Sie den Benutzer von apollo-link-batch-http entscheiden, welche Anfrage gestapelt werden soll

Erstellt am 7. Jan. 2018  ·  2Kommentare  ·  Quelle: apollographql/apollo-link

Bei Verwendung von _apollo-link-batch-http_ werden alle Anfragen in einem bestimmten Zeitintervall im Batch aufgerufen. In unserer Anwendung sind die meisten Anfragen schnell, aber wir haben auch einige zeitaufwändige Anfragen. Das Stapeln bekannter langsamer Anfragen mit anderen würde zu einer schlechteren Benutzererfahrung führen, da jetzt alle Anfragen dieselbe Antwortzeit haben wie die langsamste. Deshalb wäre es schön, wenn es einen Callback geben würde, der entscheiden kann, ob eine Anfrage sofort stapelweise gefeuert werden soll.

Hilfreichster Kommentar

Du kannst es mit Split machen
__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)

Machen Sie eine Abfrage ohne Batch-Link

const ProfileWithData = graphql(CurrentUserForLayout, {
  options: { 
    context: { noBatch: true }
  },
})(Profile);

Hier verwende ich noBatch im Kontext, um zu steuern, ob eine Abfrage gestapelt werden soll. Standardmäßig werden alle Abfragen gestapelt.

Alle 2 Kommentare

Du kannst es mit Split machen
__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)

Machen Sie eine Abfrage ohne Batch-Link

const ProfileWithData = graphql(CurrentUserForLayout, {
  options: { 
    context: { noBatch: true }
  },
})(Profile);

Hier verwende ich noBatch im Kontext, um zu steuern, ob eine Abfrage gestapelt werden soll. Standardmäßig werden alle Abfragen gestapelt.

Vielen Dank für das Beispiel @charleyw - ich werde dies schließen, da die Frage anscheinend beantwortet wurde.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

j3ddesign picture j3ddesign  ·  3Kommentare

ignivalancy picture ignivalancy  ·  5Kommentare

Morantron picture Morantron  ·  3Kommentare

valerybugakov picture valerybugakov  ·  5Kommentare

steffenmllr picture steffenmllr  ·  4Kommentare