جاوااسکریپت Synchronous است یا Asynchronous؟

جاوااسکریپت Synchronous است یا Asynchronous؟

جاوااسکریپت چیزی مابین این دو است. جاوااسکریپت در ذات خود زبان Synchronous است و خط به خط خوانده میشود. به عبارت دیگه جاوااسکریپت در لحظه تنها یک عملگر را اجرا می کند. ولی این اصلا چیز خوبی نیست.فرض کنید قرار است شما به دیتابیس یک سایت موسیقی ریکوئست بزنید و 800 رکورد بخوانید. در زبان Synchronous شما باید منتظر بمانید تا ابتدا این 800 رکورد خوانده شود تا بتوانید به سراغ کدهای دیگر بروید. خوشبختانه شما می توانید طوری کد بزنید تا جاوااسکریپت بصورت Asynchronous رفتار کند. راه هایی که پیش پای شما است به شرح زیر است:1. callbackهامی توان گفت callbackها فانکشن هایی هستند که بعنوان آرگومان به فانکشن دیگر پاس داده می شوند. زمانی که یک فانکشن تمام شود callback اجرا می شود. هرچند این راه حل خوبی بنظر میرسد، اما بی عیب نیست. از آنجایی که شما نمی دانید دقیقا کی فانکشن C به نتیجه می رسد، مجبور هستید تا فانکشن های وابسته را درون آن قرار بدهید. اینکار به سرعت تبدیل به جهنم callback ها خواهد شد.2. Promiseبا کمک Promise می توانید کدها را از هم جدا کنید و از جهنم callback ها آزاد شوید. Promise به شما این امکان را میدهد که تا زمان تکمیل تسک قبلی، تسک های بعدی را به تاخیر بیاندازید.3. Async/Awaitبه کمک Async/Await میتوانید کدهای asynchronous را بصورت synchronous بنویسید:ابتدا Async فانکشن promise بر می گرداند.سپس Await منتظر promise می ماند.مطالعه بیشتر: http://kntit.ir/%D9%85%D8%B7%D8%A7%D9%84%D8%A8-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C/%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA/329-is-javascript-synchronous-or-asynchronous.html

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *