𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝗮𝗻𝗱 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀

JavaScript ایک single thread پر چلتی ہے۔ اس کا مطلب ہے کہ یہ ایک وقت میں ایک ہی کام کرتی ہے۔ موثر کوڈ لکھنے کے لیے آپ کو یہ سمجھنا ضروری ہے کہ یہ ٹاسک (tasks) کو کیسے ہینڈل کرتی ہے۔

Synchronous JavaScript

Synchronous کوڈ لائن بہ لائن چلتا ہے۔ ہر ٹاسک پچھلے ٹاسک کے مکمل ہونے کا انتظار کرتا ہے۔ اسے blocking کہا جاتا ہے۔ اگر ایک ٹاسک میں زیادہ وقت لگے تو پورا پروگرام رک جاتا ہے۔

Asynchronous JavaScript

Asynchronous کوڈ آزادانہ طور پر چلتا ہے۔ ٹاسکس انتظار کے دوران دوسرے کوڈ کو بلاک نہیں کرتے۔ اسے non-blocking کہا جاتا ہے۔ ٹاسک بیک گراؤنڈ میں شروع ہوتا ہے اور مکمل ہونے پر آپ کو مطلع کرتا ہے۔

Asynchronous ٹاسکس کو ہینڈل کرنے کے تین طریقے:

  1. Callbacks: ایک فنکشن جو ٹاسک مکمل ہونے کے بعد چلتا ہے۔
  2. Promises: ایک آبجیکٹ جو کسی آپریشن کے مکمل ہونے یا ناکام ہونے کی نمائندگی کرتا ہے۔
  3. Async/Await: سب سے بہترین طریقہ۔ یہ تھریڈ کو بلاک کیے بغیر asynchronous کوڈ کو synchronous کوڈ کی طرح دکھاتا ہے۔

عام asynchronous آپریشنز:

Event Loop اس عمل کو ممکن بناتا ہے۔ یہ ایک وقت میں متعدد ٹاسکس کو مینیج کرنے کے لیے Call Stack، Web APIs، اور Callback Queue کا استعمال کرتا ہے۔

Summary:

Source: https://www.geeksforgeeks.org/javascript/synchronous-and-asynchronous-in-javascript/ Source: https://www.w3schools.com/js/js_asynchronous.asp Source: https://medium.com/@mohdtalib.dev/what-is-synchronous-and-asynchronous-in-javascript-07adb7b4cc5f

Full post: https://dev.to/raja_b_0c9d242e2c26cf063b/javascript-synchronous-and-asynchronous-2a69