سلام قصد دارم در این جلسه به شما یاد بدم که بدون استفاده از .then و .catch برای کنترل کردن خطاهای برنامه از aync, await, catch و finally استفاده بکنید.
به نمونه کد زیر نگاه کنید:
const doAsyncJobs = async () => { try { const result1 = await job1(); const result2 = await job2(result1); const result3 = await job3(result2); return await job4(result3); } catch (error) { console.error(error); } finally { await anywayDoThisJob(); } }
async: برای تبدیل کردن تابع جاوااسکریپت که بصورت پیش فرض synchronous می باشد به asynchronous از کلمه کلیدی async استفاده می کنیم.
await: منتظر می ماند تا تابع job1 کارش را انجام بدهد و بعد سراغ job2 , job3 می رود به همین ترتیب اجرا می شود تا return job4 انجام شود.
catch: در صورتی که یکی از توابع به خطای غیر منتظره برخورد کند وارد catch می شود
finally: وقتی که تابع async وظیفه یا task های خودش و انجام داد وارد finally میشه و می توانید یک تابع دیگری و صدا بزنید.
دودسته خطا داریم خطای برنامه نویس (توسعه دهنده) یا خطای غیر منتظره شامل قطع شدن اینترنت یا پرشدن حافظه و غیره.
به احتمال زیاد شما با call back ها اشنایی دارید و می دانید که چقدر کد و کثیف می کردند و با امدن async و await میتوان همان کد های کثیف را باز نویسی کرد و به کد تمیز تبدیل شون کرد.
خب برای ردیابی خطای های غیر منتظره برنامه بهترین راه این هست که از catch استفاده کنید مانند قطعه کد بالا.