var startIndex = 0;
var data = [1, 2, 3];
var timeout = 1000;
function functionToRun(i, length) {
alert(data[i]);
}
(function forWithDelay(i, length, fn, delay) {
setTimeout(function() {
fn(i, length);
i++;
if (i < length) {
forWithDelay(i, length, fn, delay);
}
}, delay);
})(startIndex, data.length, functionToRun, timeout);
फ़ंक्शन को अधिक पुन: प्रयोज्य बनाने के लिए मापदंडों में निकाले गए चर के साथ डैनियल वैसलो के उत्तर का एक संशोधित संस्करण:
पहले कुछ आवश्यक चर को परिभाषित करते हैं:
var startIndex = 0;
var data = [1, 2, 3];
var timeout = 3000;
आगे आपको उस फ़ंक्शन को परिभाषित करना चाहिए जिसे आप चलाना चाहते हैं। यदि आपको इसकी आवश्यकता है, तो मैं पास हो जाएगा, लूप का वर्तमान सूचकांक और लूप की लंबाई,
function functionToRun(i, length) {
alert(data[i]);
}
स्व-निष्पादित संस्करण
(function forWithDelay(i, length, fn, delay) {
setTimeout(function () {
fn(i, length);
i++;
if (i < length) {
forWithDelay(i, length, fn, delay);
}
}, delay);
})(startIndex, data.length, functionToRun, timeout);
कार्यात्मक संस्करण
function forWithDelay(i, length, fn, delay) {
setTimeout(function () {
fn(i, length);
i++;
if (i < length) {
forWithDelay(i, length, fn, delay);
}
}, delay);
}
forWithDelay(startIndex, data.length, functionToRun, timeout); // Lets run it