Saat menggunakan _apollo-link-batch-http_ semua permintaan dalam interval waktu tertentu dipanggil dalam batch. Dalam aplikasi kami sebagian besar permintaan cepat tetapi kami juga memiliki beberapa permintaan yang memakan waktu. Mengelompokkan permintaan lambat yang diketahui dengan yang lain akan menghasilkan pengalaman pengguna yang lebih buruk, karena sekarang semua permintaan memiliki waktu respons yang sama dengan yang paling lambat. Itu sebabnya alangkah baiknya jika ada panggilan balik yang dapat memutuskan apakah permintaan harus segera di-batch.
Anda dapat melakukannya dengan 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)
Buat kueri tidak menggunakan tautan batch
const ProfileWithData = graphql(CurrentUserForLayout, {
options: {
context: { noBatch: true }
},
})(Profile);
Di sini saya menggunakan noBatch
dalam konteks untuk mengontrol apakah kueri harus di-batch. Secara default, semua kueri akan dikelompokkan.
Terima kasih atas contohnya @charleyw - Saya akan melanjutkan dan menutup ini karena pertanyaannya tampaknya telah dijawab.
Komentar yang paling membantu
Anda dapat melakukannya dengan split
__links.js__
Buat kueri tidak menggunakan tautan batch
Di sini saya menggunakan
noBatch
dalam konteks untuk mengontrol apakah kueri harus di-batch. Secara default, semua kueri akan dikelompokkan.