জাভাস্ক্রিপ্টটিকে একটি প্রবর্তক ভাষা হিসাবে সংজ্ঞায়িত করা হয়েছে যার অর্থ কোনও ব্যবহারকারীর সামনে থ্রেডিং নেই, বাস্তবায়নে থ্রেড থাকতে পারে। setTimeout()
অ্যাসিঙ্ক্রোনাস কলব্যাকের মতো ক্রিয়াকলাপগুলি চালাতে সক্ষম হওয়ার আগে স্ক্রিপ্ট ইঞ্জিনটি ঘুমানোর জন্য অপেক্ষা করা প্রয়োজন।
এর অর্থ হ'ল একটি ইভেন্টে ঘটে যাওয়া সমস্ত কিছু পরবর্তী ইভেন্ট প্রক্রিয়া করার আগে শেষ করতে হবে।
বলা হচ্ছে, আপনার কোডটি এমন কিছু করতে পারে যদি এটির কোডটি এমন কিছু করে যেখানে এটি অ্যাসিঙ্ক্রোনাস ইভেন্টটি চালিত হওয়ার সময় এবং কলব্যাক কল করার সময় কোনও মান পরিবর্তন না করার প্রত্যাশা করে।
উদাহরণস্বরূপ, যদি আপনার কোনও ডাটা স্ট্রাকচার থাকে যেখানে আপনি একটি বোতাম ক্লিক করেন এবং এটি একটি এক্সএমএলএইচটিপিআরকেস্ট প্রেরণ করে যা কলব্যাককে একটি ধ্বংসাত্মক উপায়ে ডেটা কাঠামো পরিবর্তন করে এবং আপনার অন্য একটি বাটন থাকে যা একই ডাটা স্ট্রাকচারকে সরাসরি পরিবর্তিত করে, ইভেন্টটি যখন ঘটেছিল তার মধ্যে বরখাস্ত করা হয়েছিল এবং কল কলটি কার্যকর করা হলে ব্যবহারকারী কলব্যাকের আগে ডেটা স্ট্রাকচারটি ক্লিক করে আপডেট করতে পারে যা এর পরে মানটি হারাতে পারে।
আপনি যখন এমন একটি রেসের শর্ত তৈরি করতে পেরেছিলেন তবে আপনার কোডে এটি প্রতিরোধ করা খুব সহজ যেহেতু প্রতিটি ফাংশনটি পারমাণবিক হবে। বাস্তবে রেসের অবস্থা তৈরি করতে এটি অনেক বেশি কাজ হবে এবং কিছু বিজোড় কোডিং নিদর্শন গ্রহণ করবে।