𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 ਅਤੇ Asynchronous

JavaScript ਇੱਕ ਸਿੰਗਲ ਥ੍ਰੈਡ (single thread) 'ਤੇ ਚੱਲਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਇਹ ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਇੱਕ ਹੀ ਚੀਜ਼ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ। ਕੁਸ਼ਲ ਕੋਡ ਲਿਖਣ ਲਈ ਤੁਹਾਨੂੰ ਇਹ ਸਮਝਣ ਦੀ ਲੋੜ ਹੈ ਕਿ ਇਹ ਟਾਸਕਾਂ (tasks) ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਦਾ ਹੈ।

Synchronous JavaScript

Synchronous ਕੋਡ ਲਾਈਨ-ਦਰ-ਲਾਈਨ ਚੱਲਦਾ ਹੈ। ਹਰ ਟਾਸਕ ਪਿਛਲੇ ਟਾਸਕ ਦੇ ਖਤਮ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ blocking ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਜੇਕਰ ਇੱਕ ਟਾਸਕ ਵਿੱਚ ਲੰਬਾ ਸਮਾਂ ਲੱਗਦਾ ਹੈ, ਤਾਂ ਪੂਰਾ ਪ੍ਰੋਗਰਾਮ ਰੁਕ ਜਾਂਦਾ ਹੈ।

Asynchronous JavaScript

Asynchronous ਕੋਡ ਸੁਤੰਤਰ ਤੌਰ 'ਤੇ ਚੱਲਦਾ ਹੈ। ਟਾਸਕ ਉਡੀਕ ਕਰਦੇ ਸਮੇਂ ਦੂਜੇ ਕੋਡ ਨੂੰ ਰੋਕਦੇ (block) ਨਹੀਂ ਹਨ। ਇਸਨੂੰ 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