আপনি জাভাস্ক্রিপ্টে সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস মিশ্রিত করতে পারবেন না যদি আপনি স্ক্রিপ্টটি অবরুদ্ধ করেন, আপনি ব্রাউজারটিকে অবরুদ্ধ করুন।
আপনাকে এখানে পুরো ইভেন্ট চালিত পথে যেতে হবে, ভাগ্যক্রমে আমরা কুরুচিপূর্ণ জিনিসগুলি লুকিয়ে রাখতে পারি।
সম্পাদনা: কোড আপডেট হয়েছে।
function asyncLoop(iterations, func, callback) {
var index = 0;
var done = false;
var loop = {
next: function() {
if (done) {
return;
}
if (index < iterations) {
index++;
func(loop);
} else {
done = true;
callback();
}
},
iteration: function() {
return index - 1;
},
break: function() {
done = true;
callback();
}
};
loop.next();
return loop;
}
এটি আমাদের একটি অ্যাসিনক্রোনাস সরবরাহ করবে loop, আপনি অবশ্যই এটি আরও আরও সংশোধন করতে পারেন উদাহরণস্বরূপ লুপের অবস্থা পরীক্ষা করার জন্য কোনও ফাংশন ইত্যাদি take
এখন পরীক্ষায়:
function someFunction(a, b, callback) {
console.log('Hey doing some stuff!');
callback();
}
asyncLoop(10, function(loop) {
someFunction(1, 2, function(result) {
console.log(loop.iteration());
loop.next();
})},
function(){console.log('cycle ended')}
);
এবং আউটপুট:
Hey doing some stuff!
0
Hey doing some stuff!
1
Hey doing some stuff!
2
Hey doing some stuff!
3
Hey doing some stuff!
4
Hey doing some stuff!
5
Hey doing some stuff!
6
Hey doing some stuff!
7
Hey doing some stuff!
8
Hey doing some stuff!
9
cycle ended
( /* ... */ )দানবের মত রূপ এবং আমি এখন ভয় করছি :(