این قسمت کار با Asynchronous
همچنین میتونید از قسمت اول این آموزش شروع کنید:
با import کردن ماژول async میتونیم از قابلیت برنامه نویسی غیر همزمان استفاده کنیم. Future به ما اجازه میده که promise بسازیم (دقیقا مشابه JavaScript)
در این مثالی که آوردم در صورتی که result رو print کنیم با یک مقدار promise رو برو میشیم و درصورتی که بخواهیم نتیجه رو ببینیم باید از then استفاده کنیم.
در این مثال هم میتونیم از یک تاخیر زمانی استفاده کنیم. بعد از گذشت ۲ ثانیه این promise به اصطلاح resolve شده و نتیجه بعد از ۲ ثانیه در کنسول نمایش داده میشه.
مشابه کاری که با promise در جاواسکریپت انجام میدادیم اینجا هم میتونیم از زنجیره success و error استفاده کنیم . من یک متغیر showError تعریف کردم که بتونیم جریان خطا رو خودم کنترل کنم.
و از کتابخونه convert استفاده کردم تا متد json و همچنین decode در دسترسم باشه. (چون در خروجی یک json دارم پس باید اون رو به str تبدیل کنم خروجی این مرحله map Object هست) در مرحله دوم then هم مقدار جواب رو از data گرفتیم (برای اینکه ببینید چرا از این then استفاده کردم، میتونید مقداری که در این مرحله داریم رو print کنیم)
و در ادامه هم از catchError استفاده کردم که اگر خطایی رخ داد (اینجا توسط showError , throw خودم خطا تولید میکنم) اونهارو مدیریت کنه.
چون مقدار showError رو true گذاشتم پس توقع دارم که قسمت اول بلاک if اجرا بشه و نتیجه :
There was an error
باشه و در صورتی که مقدار true رو به false تغییر بدم نتیجه Success در خروجی نمایش داده بشه.
برای درخواست زدن (مثل fetch) هم که یک تابع asynchronous از روش زیر استفاده میکنیم:
استفاده از async/await هم توی دارت وجود داره و دقیقا مشابه JavaScript مدیریت میشه . در مثال های آینده از این روش برای async نوشتن استفاده میکنم.
همچنین سایر قسمت های این سری از آموزش دارت:
قسمت۱ قسمت۲ قسمت۳ قسمت۴ قسمت۵ قسمت۶ قسمت۷ قسمت۸ قسمت۹
همچنین میتونید از سایر نوشته های من تو ویرگول بازدید کنید:
Contact With me:
https://t.me/nimamohamadian
https://www.facebook.com/nimamohamadian89
https://twitter.com/Nima_Mohamadian
https://www.linkedin.com/in/nima-mohamadian-57ba63123/