मेरे पास एक ऐसा फ़ंक्शन है जो कॉलबैक फ़ंक्शन स्वीकार करता है जहां मैं डेटा को वापस पास करता हूं। क्या यह बेहतर अभ्यास के लिए स्थगित ऑब्जेक्ट में परिवर्तित हो सकता है?कॉलबैक नमूना को स्थगित ऑब्जेक्ट में कैसे परिवर्तित करें?
यहाँ मैं क्या मिला है:
var chapters;
var getChapters = function (fnLoad) {
//CACHE DATA IF APPLICABLE
if (!chapters) {
//CALL JSON DATA VIA AJAX
$.getJSON('/chapters.txt')
.done(function (json) {
//STORE DATA IN LOCAL STORAGE
chapters = Lawnchair(function() {
this.save(json, function (data) {
//CALL CALLBACK ON DATA
fnLoad(data);
});
});
});
} else {
//RETURN ALREADY CREATED LOCAL STORAGE
chapters.all(function (data) {
//CALL CALLBACK ON DATA
fnLoad(data);
});
}
};
तो मैं बस इसे इस तरह का उपयोग करें:
this.getChapters(function (data) {
console.log(data);
});
मैं इसे कैसे एक वादा की तरह उपयोग कर सकते हैं, जबकि कैश दृष्टिकोण को बनाए रखने हालांकि?
this.getChapters().done(function (data) {
console.log(data);
});
jQuery की AJAX विधियां स्थगित वस्तु का विस्तार करती हैं। आप पहले से ही इसका उपयोग कर रहे हैं ... –
लेकिन ध्यान दें कि मैं डेटा को वापस करने से पहले डेटा में हेरफेर कर रहा हूं और बीच में कहीं "लॉन्चैयर" का उपयोग कर रहा हूं, इसलिए मैं AJAX ऑब्जेक्ट को सही नहीं कर सकता? – TruMan1
सभी कैप्स में आपकी टिप्पणियां क्यों हैं? – Eric