Nima Mohamadian
Nima Mohamadian
خواندن ۲ دقیقه·۶ سال پیش

آموزش مقدماتی دارت Dart - قسمت ۹

این قسمت کار با Asynchronous


همچنین میتونید از قسمت اول این آموزش شروع کنید:

https://virgool.io/@novonimo/آموزش-مقدماتی-دارت-dart-قسمت-۱-vrd1jjuoble1
آموزش مقدماتی دارت
آموزش مقدماتی دارت



با ‌import کردن ماژول async میتونیم از قابلیت برنامه نویسی غیر همزمان استفاده کنیم. Future به ما اجازه میده که promise بسازیم (دقیقا مشابه JavaScript)
در این مثالی که آوردم در صورتی که result رو print کنیم با یک مقدار promise رو برو میشیم و درصورتی که بخواهیم نتیجه رو ببینیم باید از then استفاده کنیم.

Async & Future in Dart
Async & Future in Dart



در این مثال هم میتونیم از یک تاخیر زمانی استفاده کنیم. بعد از گذشت ۲ ثانیه این promise به اصطلاح resolve شده و نتیجه بعد از ۲ ثانیه در کنسول نمایش داده میشه.

delayed Future in Dart
delayed Future in Dart



مشابه کاری که با promise در جاواسکریپت انجام میدادیم اینجا هم میتونیم از زنجیره success و error استفاده کنیم . من یک متغیر showError تعریف کردم که بتونیم جریان خطا رو خودم کنترل کنم.
و از کتابخونه convert استفاده کردم تا متد json و همچنین decode  در دسترسم باشه. (چون در خروجی یک json دارم پس باید اون رو به str تبدیل کنم خروجی این مرحله map Object هست) در مرحله دوم then هم مقدار جواب رو از data گرفتیم (برای اینکه ببینید چرا از این then استفاده کردم، میتونید مقداری که در این مرحله داریم رو print کنیم)
و در ادامه هم از catchError استفاده کردم که اگر خطایی رخ داد (اینجا توسط showError , throw خودم خطا تولید میکنم) اونهارو مدیریت کنه.

then & catch block
then & catch block


چون مقدار showError رو true گذاشتم پس توقع دارم که قسمت اول بلاک if اجرا بشه و نتیجه :

There was an error

باشه و در صورتی که مقدار true رو به false تغییر بدم نتیجه Success در خروجی نمایش داده بشه.


برای درخواست زدن (مثل fetch) هم که یک تابع asynchronous از روش زیر استفاده میکنیم:

درخواست زدن در Dart
درخواست زدن در Dart



استفاده از async/await هم توی دارت وجود داره و دقیقا مشابه JavaScript مدیریت میشه . در مثال های آینده از این روش برای async نوشتن استفاده میکنم.


همچنین سایر قسمت های این سری از آموزش دارت:
قسمت۱ قسمت۲ قسمت۳ قسمت۴ قسمت۵ قسمت۶ قسمت۷ قسمت۸ قسمت۹

همچنین میتونید از سایر نوشته های من تو ویرگول بازدید کنید:

https://virgool.io/@novonimo/ری-اکت-رو-قورت-بده-۱-u8t5ysweyxyj
https://virgool.io/@novonimo/نکات-طلایی-برای-توسعه-دهندگان-ری-اکت-نیتو-reactnative-قسمت-۱-l8kuhkrr98ps
https://virgool.io/@novonimo/فوت-و-فن-برنامه-نویسی-functional-با-جاواسکریپت-ujucyxjfn0zw



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/

dartdartlanggoogleflutterdeveloper
توسعه دهنده جاواسکریپت
شاید از این پست‌ها خوشتان بیاید