𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝗻𝗮 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀
JavaScript hufanya kazi kwenye thread moja. Hii ina maana inatekeleza jambo moja kwa wakati mmoja. Unahitaji kuelewa jinsi inavyoshughulikia kazi ili kuandika kodi bora.
Synchronous JavaScript
Kodi ya synchronous hufanya kazi mstari kwa mstari. Kila kazi inasubiri kazi iliyotangulia imalize. Hii inaitwa blocking. Ikiwa kazi moja itachukua muda mrefu, programu nzima inasimama.
- Utekelezaji: Mfuatano uliowekwa.
- Blocking: Ndiyo.
- Ugumu: Rahisi.
- Inafaa zaidi kwa: Kazi rahisi, za mfuatano.
Asynchronous JavaScript
Kodi ya asynchronous hufanya kazi kwa uhuru. Kazi hazizuili (block) kodi nyingine wakati zinaposubiri. Hii inaitwa non-blocking. Kazi huanza kwa nyuma (background) na kukujulisha inapomaliza.
- Utekelezaji: Kazi hufanya kazi kwa uhuru.
- Blocking: Hapana.
- Ugumu: Mkubwa zaidi.
- Inafaa zaidi kwa: API calls, timers, na operesheni za faili.
Njia tatu za kushughulikia kazi za asynchronous:
- Callbacks: Function inayotekelezwa baada ya kazi fulani kumalizika.
- Promises: Object inayowakilisha ukamilishaji au kushindwa kwa operesheni.
- Async/Await: Njia safi zaidi. Inafanya kodi ya asynchronous ionekane kama kodi ya synchronous bila kuzuia thread.
Operesheni za kawaida za asynchronous:
- Timers:
setTimeout() - API calls:
fetch() - File reading:
readFile() - User events:
addEventListener()
Event Loop ndiyo inayofanya hili lifanikiwe. Inatumia Call Stack, Web APIs, na Callback Queue kusimamia kazi nyingi kwa wakati mmoja.
Muhtasari:
- Synchronous: Moja baada ya nyingine. Inazuia utekelezaji.
- Asynchronous: Kazi zinazojitegemea. Haizuili (block).
- JavaScript kwa kawaida: Synchronous.
Chanzo: https://www.geeksforgeeks.org/javascript/synchronous-and-asynchronous-in-javascript/ Chanzo: https://www.w3schools.com/js/js_asynchronous.asp Chanzo: https://medium.com/@mohdtalib.dev/what-is-synchronous-and-asynchronous-in-javascript-07adb7b4cc5f
Makala kamili: https://dev.to/raja_b_0c9d242e2c26cf063b/javascript-synchronous-and-asynchronous-2a69