Apollo-link: اسمح لمستخدم apollo-link-batch-http أن يقرر أي طلب سيتم تجميعه

تم إنشاؤها على ٧ يناير ٢٠١٨  ·  2تعليقات  ·  مصدر: apollographql/apollo-link

عند استخدام _apollo-link-batch-http_ يتم استدعاء جميع الطلبات في فترة زمنية محددة دفعة واحدة. معظم الطلبات في تطبيقنا سريعة ولكن لدينا أيضًا بعض الطلبات التي تستغرق وقتًا طويلاً. سيؤدي تجميع الطلب البطيء المعروف مع الآخر إلى تجربة مستخدم أضعف ، حيث أن جميع الطلبات تتمتع الآن بنفس وقت استجابة الطلب الأبطأ. هذا هو السبب في أنه سيكون من الجيد أن يكون هناك رد اتصال يمكنه تحديد ما إذا كان الطلب يجب أن يكون دفعة أم لا على الفور.

التعليق الأكثر فائدة

يمكنك القيام بذلك مع الانقسام
__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)

جعل استعلام لا يستخدم ارتباط دفعة

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

هنا أستخدم noBatch في السياق للتحكم في ما إذا كان يجب تجميع الاستعلام. بشكل افتراضي ، سيتم تجميع جميع الاستعلامات.

ال 2 كومينتر

يمكنك القيام بذلك مع الانقسام
__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)

جعل استعلام لا يستخدم ارتباط دفعة

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

هنا أستخدم noBatch في السياق للتحكم في ما إذا كان يجب تجميع الاستعلام. بشكل افتراضي ، سيتم تجميع جميع الاستعلامات.

شكرًا لك على المثال charleyw -

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات