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