Belajar Bahasa Pemrograman Dart : Future with async-await

Dhe997

Future with async-await

Pada materi sebelumnya kita telah mempelajari Future untuk berurusan dengan proses asynchronous
Seperti yang kita tahu, penulisan kode asynchronous akan sedikit berbeda dengan proses synchronous. Contohnya program pesan kopi kita sebelumnya jika dituliskan secara asynchronous akan seperti berikut:

2020033111050081b9f735708c1036c2bbb0892ab68b38.jpeg
Dart memiliki keyword async dan await yang merupakan sebuah alternatif supaya kita bisa menuliskan proses asynchronous layaknya proses synchronous. Bagaimana caranya?
Dengan gaya penulisan synchronous, kira-kira kode program pesan kopi kita akan seperti berikut:


  1. void main() {

  2.   print('Getting your order...');

  3.   var order = getOrder();

  4.   print('You order: $order');

  5. }



Namun ketika kode di atas dijalankan hasilnya tidak akan sesuai yang kita harapkan karena fungsi getOrder() merupakan objek Future.


  1. Getting your order...

  2. You order: Instance of 'Future<String>'



Output ini disebabkan karena fungsi main() masih merupakan fungsi synchronous. Untuk mengubahnya menjadi fungsi asynchronous tambahkan keyword async sebelum function body.


  1. void main() async { }



Kemudian tambahkan keyword await sebelum fungsi yang mengembalikan nilai Future.


  1. var order = await getOrder();



Dari perubahan di atas yang memanfaatkan async-await kita telah berhasil menuliskan proses asynchronous dengan gaya synchronous.


  1. void main() async {

  2.   print('Getting your order...');

  3.   var order = await getOrder();

  4.   print('You order: $order');

  5. }

  6.  

  7.  

  8. /*

  9.   Output :

  10.   Getting your order...

  11.   You order: Coffee Boba

  12. */



Lalu bagaimana menangani ketika terjadi eror? Caranya cukup sederhana yaitu dengan memanfaatkan try-catch:


  1. void main() async {

  2.   print('Getting your order...');

  3.   try {

  4.     var order = await getOrder();

  5.     print('You order: $order');

  6.   } catch (error) {

  7.     print('Sorry. $error');

  8.   }

  9. }



Begitu juga seperti yang telah disebutkan, method whenComplete() bisa digantikan dengan blok finally. Sehingga keseluruhan kode akan menjadi seperti berikut:
20200331110937ec96183151b69f4e8243f18fb7a5516d.jpeg

Posting Komentar

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.