Matawebsite Promo Lebaran 2022

Dart's async dan await di Flutter

date 06 Jul 2021
date Lev Yasin
date 4109
date Mobile App
Dart's async dan await di Flutter

Async dan await pendekatan dalam Dart sangat mirip dengan bahasa lain (melihat teman-teman C #), yang membuatnya menjadi topik yang nyaman untuk pegang bagi mereka yang telah menggunakan pola ini sebelumnya. Namun, bahkan jika teman-teman tidak memiliki pengalaman dengan pemrograman asinkron menggunakan asyncawait, teman-teman akan merasa mudah untuk mengikutinya di sini. Ingatlah bahwa artikel ini mengasumsikan setidaknya keakraban dasar dengan pemrograman asinkron.

Singkatnya, teman-teman memiliki dua kata kunci untuk dipahami -  asyncdan await. Fungsi apa pun yang ingin teman-teman jalankan secara asinkron harus memiliki asyncpengubah yang ditambahkan ke dalamnya. Pengubah ini muncul tepat setelah tanda tangan fungsi, seperti ini:

void hello() async {
  print('something exciting is going to happen here...');
}

Ini, tentu saja, adalah contoh yang dibuat-buat. Biasanya, fungsi yang ingin teman-teman jalankan secara asinkron akan memiliki beberapa operasi mahal di dalamnya seperti file I/O (panggilan API ke layanan RESTful) atau semacam perhitungan yang lebih umum. Jangan khawatir, kita akan membahas skenario yang lebih kompleks dalam sedikit…

Pertama, kita datang ke await. Bagian awaitpada dasarnya mengatakan -   lanjutkan dan jalankan fungsi ini secara asinkron dan, ketika selesai, lanjutkan ke baris kode berikutnya . Ini adalah bagian terbaik dari menggunakan asyncawait, teman-teman dapat menulis kode yang sangat mudah diikuti, seperti ini:

void main() async {
  await hello();
  print('all done');
}

Ada dua hal penting yang harus dipahami mengenai blok kode di atas. Pertama, kita menggunakan asyncpengubah pada metode utama karena kita akan menjalankan hello()fungsi secara asinkron.

Kedua, kita menempatkan awaitpengubah langsung di depan fungsi asinkron kita. Oleh karena itu, ini sering disebut sebagai pola asyncawait.

Ingat saja, jika teman-teman akan menggunakan await, pastikan bahwa fungsi pemanggil dan fungsi apa pun yang teman-teman panggil dalam fungsi itu semuanya menggunakan asyncpengubah.

Contoh yang lebih realistis

Sejauh ini, saya telah menunjukkan kepada teman-teman contoh yang dibuat-buat yang tidak pernah benar-benar perlu asinkron. Ini dilakukan untuk menjaga hal-hal sesederhana mungkin. Sekarang, mari kita lakukan beberapa pekerjaan async/ realistis await.

Biasanya, alasan teman-teman ingin melakukan pemrograman asinkron adalah jika teman-teman tahu bahwa teman-teman akan melakukan operasi yang berjalan lama, dan teman-teman tidak ingin program teman-teman menjadi tidak responsif saat operasi tersebut berjalan. Mari buat operasi yang berjalan lama (2 detik) dan lakukan async.

import 'dart:async';
 
class Employee {
int id;
String firstName;
String lastName;
 
Employee(this.id, this.firstName, this.lastName);
}
 
void main() async {
print("getting employee...");
var x = await getEmployee(33);
print("Got back ${x.firstName} ${x.lastName} with id# ${x.id}");
}
 
Future<Employee> getEmployee(int id) async {
//Simluate what a real service call delay may look like by delaying 2 seconds
await Future<Employee>.delayed(const Duration(seconds: 2));
//and then return an employee - lets pretend we grabbed this out of a database ?
var e = new Employee(id, "Joe", "Coder");
return e;
}
Matawebsite Promo
lev_yasin.png

Lev Yasin

Instruktur Web Programming Mataweb

Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.

Artikel Populer

Halo, ada yang bisa kami bantu?
Daftar Sekarang