मैं एपीआई Async से डेटा का एक गुच्छा लोड करने की कोशिश कर रहा हूं और जब सभी डेटा लोड हो जाता है तो मैं एक ईवेंट ट्रिगर करना चाहता हूं कि सभी डेटा लोड हो। मेरी समस्या यह है कि मैं जिस एपीआई का उपयोग कर रहा हूं वह प्रतिक्रिया वस्तुओं की संख्या को पांच तक सीमित कर देता है। और मुझे संभावित रूप से 30-40 प्रतिक्रिया वस्तुओं को पुनर्प्राप्त करने की आवश्यकता होगी।एक JQuery के अंदर अजाक्स अनुरोधों के माध्यम से कैसे लूप करें - फिर स्टेटमेंट?
तो मैं जो करना चाहता हूं वह एक समय बना देता है - फिर कथन जो डेटा आइटम्स को कम करता है और सभी आइटमों को तब लोड करता है जब सभी आइटम लोड हो जाते हैं, मैं एक लोड की गई घटना को आग लगाना चाहता हूं। मेरे पास यह मुद्दा यह है कि जब अजाक्स अनुरोध की सफलता से पहले वक्तव्य पूरा हो रहा है।
कोड पर मैंने कोशिश की है।
function loadsLotsOfStats(stats, dataType, eventName, dataName, callback) {
var groupedStats = [];
while (stats.length > 0) {
groupedStats.push(stats.splice(0, 5).join('/'));
}
j$.when(
groupedStats.forEach(function (d) {
loadJSONToData(model.apiUrl.replace("{IDS}", d), "json", "", dataName, function (d) { /*console.log(d);*/ }, true)
})
).then(function() {
j$(eventSource).trigger('dataLoaded', eventName);
});
loadJSONToData समारोह मूल रूप से एक Async $ .ajax के लिए सिर्फ एक आवरण कार्य है।
तो हाँ डेटा वास्तव में लोड होने से पहले ट्रिगर हो रहा है। इसके अलावा कुछ कारणों से जब मैं लूप को सही तरीके से डालने का प्रयास करता हूं (इसे वाक्यविन्यास त्रुटि के माध्यम से बयान दें?
क्या किसी के पास कोई सलाह है कि मैं अजाक्स अनुरोधों का एक समूह कैसे बना सकता हूं और प्रतीक्षा कर सकता हूं जब तक कि वे सभी पहले कॉम्प्लेटेड नहीं हो जाते मदद के लिए किसी ईवेंट को ट्रिगर? या एक दूर मैं वर्तमान में क्या है ठीक करने के लिए?
धन्यवाद।
आप 'if (condition.length <10) {// कोड निष्पादित करने के लिए}} का भी उपयोग कर सकते हैं। –
संभावित डुप्लिकेट [JQuery के माध्यम से 2 अजाक्स कॉल करने की कोशिश कर रहा है, और फिर डेटा को प्रीपेड करना (फ्रीकोडकैम्प ट्विच प्रोजेक्ट से लिया गया)] (http://stackoverflow.com/questions/42425885/trying-to-make-2-ajax- कॉल-थ्रू-जेक्वायरी-एंड-फिर-प्रीपेन्डिंग-द-डेटा-ले लिया-से) –