𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝗮𝗻𝗱 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀
JavaScript एका सिंगल थ्रेडवर (single thread) चालते. याचा अर्थ असा की ते एका वेळी एकच गोष्ट कार्यान्वित करते. कार्यक्षम कोड लिहिण्यासाठी ते टास्क (tasks) कसे हाताळते हे समजून घेणे आवश्यक आहे.
Synchronous JavaScript
Synchronous कोड ओळीनुसार (line by line) चालतो. प्रत्येक टास्क मागील टास्क पूर्ण होण्याची वाट पाहतो. याला 'blocking' असे म्हणतात. जर एका टास्कला जास्त वेळ लागला, तर संपूर्ण प्रोग्राम थांबतो.
- Execution: ठराविक क्रम.
- Blocking: हो.
- Complexity: सोपे.
- Best for: साधे, क्रमिक टास्क.
Asynchronous JavaScript
Asynchronous कोड स्वतंत्रपणे चालतो. टास्क प्रलंबित असताना ते इतर कोडला ब्लॉक करत नाहीत. याला 'non-blocking' असे म्हणतात. टास्क बॅकग्राउंडमध्ये सुरू होतो आणि पूर्ण झाल्यावर तुम्हाला सूचित करतो.
- Execution: टास्क स्वतंत्रपणे चालतात.
- Blocking: नाही.
- Complexity: जास्त.
- Best for: API calls, timers आणि फाईल ऑपरेशन्स.
Asynchronous टास्क हाताळण्याचे तीन मार्ग:
- Callbacks: टास्क पूर्ण झाल्यानंतर चालणारे फंक्शन.
- Promises: एक ऑब्जेक्ट जो ऑपरेशनचे पूर्ण होणे किंवा अयशस्वी होणे दर्शवतो.
- Async/Await: सर्वात स्वच्छ पद्धत. हे थ्रेडला ब्लॉक न करता asynchronous कोडला synchronous कोडसारखे दाखवते.
सामान्य asynchronous ऑपरेशन्स:
- Timers