Dart Futures - Async Await

The Ngoding

Sebelumnya kita sudah membahas tentang Futre pada dart, dan sekarang kita masuk ke pembahasan selanjutnya yaitu async await.

Contoh Code

    import 'dart:io';

    void main(List<String> arguments) async {
      var username = getUserName();
      username.then((value) => print(value));
      username.onError((error, stackTrace) {
        print(error);
        return "error";
      });
    }

    Future<String> getUserName() async {
      print('Siapa nama kamu?:');
      String? name = stdin.readLineSync();
      return name ?? "";
    }

Future<String> getUserName() async {

  • Future<String> artinya kita akan membuat sebuah asynchronous function yang mengembalikan nilai bertipe String
  • async artinya kita akan membuat sebuah asynchronous function
  • stdin.readLineSync(); artinya kita akan mengambil input dari user

Dart Async Await

    void main(List<String> arguments) async {
      countDown(3);
    }

    countDown(int n) {
      print("baris pertama");
      Future.delayed(Duration(seconds: n)).then((value) {
        print("baris kedua");
      });
      print("baris terakhir");
    }

Output:

    baris pertama
    baris terakhir
    baris kedua

Update kodingan menjadi

    void main(List<String> arguments) async {
      countDown(3);
    }

    countDown(int n)async{
      print("baris pertama");
      await Future.delayed(Duration(seconds: n)).then((value) {
        print("baris kedua");
      });
      print("baris terakhir");
    }

Output:

    baris pertama
    baris kedua
    baris terakhir

Perhatikan perbedaan async dan await pada kodingan dan outputnya ya.

Kodingan pertama kita tidak menggunakan async dan await, sehingga baris terakhir akan dijalankan terlebih dahulu, kemudian baris kedua. Kodingan kedua kita menggunakan async dan await, sehingga baris kedua akan dijalankan terlebih dahulu, kemudian baris terakhir.

apa bedanya ?

Saat kita menggunakan async dan await, maka kita akan menunggu proses asynchronous selesai terlebih dahulu, baru kemudian kita akan menjalankan baris selanjutnya. Jika kita tidak menggunakan async dan await, maka kita akan menjalankan baris selanjutnya tanpa menunggu proses asynchronous selesai.

{{< youtube id="0R4eJ8O4ZSU" autoplay="true" color="white" yt_start="12" yt_end="24">}}


✨”Jika Kamu tidak sanggup menahan lelahnya belajar maka kamu harus sanggup menahan perihnya kebodohan” ✨Imam Syafi'i

Video

The Ngoding

13 Alasan Jetpack Compose Lebih Baik untuk Pengembangan Aplikasi Android

Cong Fandi

Jetpack Compose - Surface

Cong Fandi

Jetpack Compose - CutCornerShape

Cong Fandi

Jetpack Compose - RoundedCornerShape

Cong Fandi

Jetpack Compose - CircleShape

Cong Fandi

Jetpack Compose - ConstraintSet

Cong Fandi

Jetpack Compose - BadgeBox

Cong Fandi

Video

The Ngoding

Categories

Tags