Apollo-link: إضافة خيار المهلة لـ apollo-link-http

تم إنشاؤها على ٢٠ فبراير ٢٠١٩  ·  7تعليقات  ·  مصدر: apollographql/apollo-link

سيكون من الجيد جدًا أن تكون قادرًا على تضمين قيمة مهلة ملي ثانية في خيارات apollo-link-http.

حتى لو لم يتمكن هذا من إحباط عملية الجلب قيد التقدم في الوقت الحالي ، فسيكون ذلك مفيدًا جدًا حتى لا يضطر الجميع إلى طرح الحل الخاص بهم:

https://stackoverflow.com/questions/40837676/apolloclient-timeout-best-option
https://stackoverflow.com/questions/47198402/how-to-set-a-timeout-on-a-request-with-apollo-client

feature

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

مرحبًا فريق Apollo ، من المفيد جدًا أن يكون لديك خيار مهلة مدعوم افتراضيًا في تطبيق عميل Apollo graphql. نظرًا لأن هذا مقترن بإحكام بطلبات العميل ، فمن الإنصاف طلب المهلة.
هل تخطط بالفعل لهذه الميزة؟ ما هو موقفك الحالي من هذا الطلب؟

أثوق إلى السماع عنك.

شكرا
أرافيند

ال 7 كومينتر

نعم ، ينبغي أن يكون من الممكن إنهاء عملية الجلب وتوقيت الطلب إذا لزم الأمر.

إذا كان الأشخاص يعتمدون على الإصدار غير المهلة ، فسنحتاج إلى تقديم إلغاء الاشتراك للقيام بهذا السلوك.

يمكننا استخدام abortConttoller للإلغاء نفسه.

أفكار؟ تضمين التغريدة

dshookJoviDeCroock أعتقد أن ما تريده حقًا هو رابط مهلة. من المفترض أنك تريد تقييد مقدار الوقت الذي قد يضطر فيه المتصل إلى انتظار رد ، وإرجاع خطأ فقط إذا لم يرد أي رد في ذلك الوقت ، هل هذا صحيح؟ إذا كان الأمر كذلك ، فإن وضعه في رابط http نفسه لن يجعله قابلاً للتكوين مع روابط أخرى. قد يكون الاستعلام الخاص بك في انتظار أو عالق في أي رابط آخر أيضًا ، ولا يجب أن يكون رابط إعادة المحاولة حقًا. يمكن أن يكون في apollo-link-retry ، و apollo-link-serialize ، و apollo-link-queue ، إلخ. الطلبات التي استغرقت وقتًا طويلاً (إلغاؤها وإرجاع خطأ) ، بغض النظر عن مكان تعليق الطلب في المكدس.

كما أشرت ، فإن إلغاء الطلب بعد انقضاء مهلة لا يضمن أن الخادم لم يطلع عليه ، لذا كن حذرًا مع الطفرات غير الفعالة.

ملاحظة: يبدو أن شخصًا ما أنشأ بالفعل رابط مهلة (مهلة أبولو رابط). لسوء الحظ ، فهو ليس مرنًا للغاية ويؤدي إلى كسر تجريد الارتباط (على سبيل المثال ، الوصول إلى رابط الجلب لإلغاء الطلب وإعادة مهلة المرجع الذي يمكن استدعاؤه من أي مكان) ، لا يبدو أنه تم اختباره جيدًا ، ولديه بعض الشكوك الافتراضيات (مهلة 15 ثانية بدلاً من عدم وجود مهلة) وليست مرنة للغاية (على سبيل المثال لا يمكن أن تعتمد المهلة على متغيرات الاستعلام) ، ولكنها ستؤدي على الأرجح إلى الحيلة نيابةً عنك.

أوافق على أن هذا سيكون رائعًا ، لكنني أفهم أن Fetch API ليس لديه آلية مهلة لذلك لست متأكدًا مما إذا كان Fetch يستخدم تحت الغطاء أو إذا تم استخدام الوعود العادية فقط.

apollo-link-timeout غير مرن كما ذكر helfer . أعتقد أن timeout يجب أن تكون ديناميكية. كيف يمكننا التعامل مع الوقت المستقطع كأفضل طريقة؟ 🤣

_ مثال استعلام _

<Query
  query={FETCH_QUERY}
  context={{ timeout: 5000 }}
>...</Query>

فقط أريد المتابعة هنا ، ما هو الحل الحالي المقبول؟ ويمثل سيناريو العالم الحقيقي ويبدو أنه طلب عادل لانتهاء المهلة.

مرحبًا فريق Apollo ، من المفيد جدًا أن يكون لديك خيار مهلة مدعوم افتراضيًا في تطبيق عميل Apollo graphql. نظرًا لأن هذا مقترن بإحكام بطلبات العميل ، فمن الإنصاف طلب المهلة.
هل تخطط بالفعل لهذه الميزة؟ ما هو موقفك الحالي من هذا الطلب؟

أثوق إلى السماع عنك.

شكرا
أرافيند

هل هذه الميزة لا تزال على المسار الصحيح؟ يمكننا حقًا الاستفادة من خيار المهلة إذا كان متاحًا.

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