چه تفاوتی بین تماسهای Promise ، AJAX و Callback وجود دارد؟


پاسخ 1:

تمام عملیات ناهمزمان یک وعده را برمی گرداند و می توانید وعده خود را ایجاد کنید

بازگشت نوید جدید ()

AJAX یک تماس شبکه ناهمزمان است. این می تواند یا با وعده یا async / await انجام شود.

شبکه async درخواست () {پاسخ را بدهد = منتظر $ .ajax ('myurl')؛ }

پاسخ به تماس مانند عملکردی است که پس از یک عمل خاص فراخوانی می شود.

درخواست شبکه (cb) {واکشی (url) .then (res => res.json ()). سپس (Cb)؛ request درخواست شبکه ((پاسخ) => {console.info ('پاسخ' ، پاسخ)})

روش فوق درخواست شبکه را به URL می دهد و پاسخ JSON برای پاسخ به تماس ارسال می شود که بعداً فراخوانی می شود.


پاسخ 2:

با تشکر از A2A!

خوب ، هیچ مقایسه ای بین AJAX و دو مورد دیگر وجود ندارد. با این حال ، از آنجا که AJAX راهی برای انتقال درخواست مشتری به سمت سرور است ، وعده و یادآوری تمام اشیاء جاوا اسکریپت کاملاً سمت مشتری هستند که می توانند برای انواع مختلف سرویس های مشتری استفاده شوند.

تفاوت اصلی بین پاسخ به تماس و وعده در این است که پاسخ به تماس منتظر نمی ماند تا درخواست های موازی برای تکمیل شدن انجام شود. نتیجه به سرعت به محض دریافت یک درخواست بازگردانده می شود.

از طرف دیگر ، وعده منتظر می ماند تا درخواست موازی تکمیل شود و سپس نتیجه نهایی را مطابق با وضعیت برنامه برمی گرداند.

به عبارت دیگر ، می توانید از Promise برای تغییر رفتار ناهمزمان یک تماس به همزمان استفاده کنید. نه به طور کامل ، اما بله ، تا یک مورد خاص.

برای درک بهتر ، مثال زیر را در نظر بگیرید:

فرم پاسخ به تماس برای برنامه: