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.
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.
Hilfreichster Kommentar
Du kannst es mit Split machen
__links.js__
Machen Sie eine Abfrage ohne Batch-Link
Hier verwende ich
noBatch
im Kontext, um zu steuern, ob eine Abfrage gestapelt werden soll. Standardmäßig werden alle Abfragen gestapelt.