मेरे पास $.ajax
वादा है और यह जांचना है कि मेरी (वाक्य रचनात्मक रूप से वैध) प्रतिक्रिया में कोई त्रुटि है, उस स्थिति में अस्वीकृत स्थिति को ट्रिगर करना।jQuery की डिफरर्ड ऑब्जेक्ट में त्रुटि को फेंकना
मैंने अपनी खुद की वादा लाइब्रेरी के साथ काम किया है जो इस तरह के कार्यों को आसानी से सौदा करता है। मुझे वास्तव में jQuery के Promise (cache) को Deferred
object के साथ कार्यान्वित नहीं करना चाहिए और शायद कुछ अनदेखा हो सकता है, क्योंकि मैं शायद ही कभी इसका उपयोग करता हूं। मुझे लगता है कि जाने के लिए बस .then()
, जो लगता है जिस तरह से उपयोग कर रहा है बल्कि जटिल:
return $.ajax(...).then(function success(response) {
var problem = hasError(response);
if (problem) {
var error = new $.Deferred;
error.reject(problem);
return error;
} else
return response;
});
यह एक वादा है जो नेटवर्क त्रुटि या प्रतिक्रिया के साथ समस्याओं के मामले में अस्वीकार कर दिया है वापस आ जाएगी। लेकिन एक अस्वीकार कर दिया गया है वास्तव में [केवल | सबसे अच्छा | सबसे छोटा] रास्ता तय करने के लिए?
मैं भी AJAX विकल्पों में ऐसे "त्रुटि-फेंकने वाले प्रतिक्रिया हैंडलर" से निपटने के तरीके पर सहायता की सराहना करता हूं, मुझे उनके बारे में अच्छा दस्तावेज नहीं मिला।
अस्वीकरण: नहीं, मैं सर्वर प्रतिक्रियाओं को बदल नहीं सकता। समस्या-पहचान विधि तुल्यकालिक है। मैं अन्य पुस्तकालयों का उपयोग नहीं करना चाहता, मैं विशेष रूप से जिस तरह से jQuery हल करता हूं उसमें दिलचस्पी लेता हूं।
ठीक है, 'के साथ तो फिर()' मैं बात यह है कि '.pipe()' में करता है मतलब jQuery :-( – Bergi
Jquery 1.8 पाइप === फिर – Plynx
हां, शुक्र है कि उन्हें कम से कम तय किया गया है। – Bergi