तक जावास्क्रिप्ट फॉर-लूप जारी न रखें मुझे लूप के लिए रोकना होगा और जब तक मैं निर्दिष्ट नहीं करता तब तक जारी नहीं रहना चाहिए। सरणी में प्रत्येक आइटम के लिए जो मैं लूपिंग कर रहा हूं, मैं कुछ कोड चलाता हूं जो एक अलग डिवाइस पर एक ऑपरेशन चलाता है, और मुझे तब तक इंतजार करना होगा जब तक कि सरणी में अगले आइटम को लूप करने से पहले उस ऑपरेशन को समाप्त नहीं किया जाता है।निर्दिष्ट
सौभाग्य से, वह कोड/ऑपरेशन एक कर्सर है और इसमें after:
अनुभाग है।
हालांकि, यह पूरी तरह से लूप के लिए पूरी तरह से चल रहा है, जिसे मुझे रोकने की आवश्यकता है। क्या लूप को निर्दिष्ट होने तक जारी रखने से रोकने का कोई तरीका है? या शायद एक अलग प्रकार का लूप या कुछ जो मुझे उपयोग करना चाहिए?
मेरी पहली (गरीब) विचार के लिए लूप कि लगातार दौड़ा भीतर थोड़ी देर के पाश बनाने के लिए, जब तक कर्सर की after:
भाग true
करने के लिए एक boolean
सेट था। यह सिर्फ ब्राउज़र बंद :(जैसा कि मैंने डर था कि यह होगा।
कुछ भी मैं कर सकता हूँ? मैं काफी जावास्क्रिप्ट के लिए नया हूँ। मैं अपने वर्तमान परियोजना हालांकि आनंद ले गया है।
यहाँ while-loop
प्रयास है। मैं जानता हूँ कि यह पूरे पाश तुरंत चल रहा है क्योंकि dataCounter
(सरणी वर्तमान में दो आइटम) 1
3
करने से चला जाता है तुरन्त:
if(years.length>0){
var dataCounter = 1;
var continueLoop;
for(var i=0;i<years.length;i++){
continueLoop = false;
baja.Ord.make(historyName+"?period=timeRange;start="+years[i][1].encodeToString()+";end="+years[i][2].encodeToString()+"|bql:select timestamp, sum|bql:historyFunc:HistoryRollup.rollup(history:RollupInterval 'hourly')").get(
{
ok: function (result) {
// Iterate through all of the Columns
baja.iterate(result.getColumns(), function (c) {
baja.outln("Column display name: " + c.getDisplayName());
});
},
cursor: {
before: function() {
baja.outln("Called just before iterating through the Cursor");
counter=0;
data[dataCounter] = [];
baja.outln("just made data["+dataCounter+"]");
},
after: function() {
baja.outln("Called just after iterating through the Cursor");
continueLoop = true;
},
each: function() {
if(counter>=data[0].length) {
var dateA = data[dataCounter][counter-1][0];
dateA += 3600000;
}
else {
var dateA = data[0][counter][0];
}
var value=this.get("sum").encodeToString();
var valueNumber=Number(value);
data[dataCounter][counter] = [dateA,valueNumber];
counter++;
},
limit: 744, // Specify optional limit on the number of records (defaults to 10)2147483647
offset: 0 // Specify optional record offset (defaults to 0)
}
})
while(continueLoop = false){
var test = 1;
baja.outln("halp");
}
dataCounter++;
}
}
पोस्ट कुछ कोड है कि आप की कोशिश की है: अपने वास्तविक कोड के साथ यह कुछ इस तरह होगा। यदि आपके पास वास्तविक कोड है जो आपने किया है और यह क्यों काम नहीं कर रहा है, तो लोग आपकी सहायता करने के लिए और अधिक इच्छुक होंगे। –
तो, फॉर-लूप का शरीर एक असीमित कार्य होना चाहिए? – Bergi