Home Uncategorized Apa perbedaan antara async dan async* di Dart?

Apa perbedaan antara async dan async* di Dart?

0

Di Dart, async dan async* keduanya digunakan untuk pemrograman asinkron, namun keduanya memiliki tujuan berbeda dan memiliki perilaku berbeda:

asinkron:

· async digunakan untuk menandai suatu fungsi sebagai asynchronous. Hal ini menunjukkan bahwa fungsi tersebut akan melakukan beberapa operasi asinkron dan mungkin menghentikan sementara eksekusinya menggunakan menunggu untuk menunggu operasi ini selesai.

· Fungsi mengembalikan satu Masa Depan atau nilai secara langsung (dalam kasus fungsi sinkron). Jika fungsi mengembalikan nilai secara langsung, Dart secara otomatis membungkusnya dalam Future .

· Saat menggunakan async , isi fungsi dapat berisi ekspresi menunggu, yang menunda eksekusi fungsi hingga operasi asinkron yang ditunggu selesai.

asinkron*:

· async* digunakan untuk mendefinisikan fungsi yang menghasilkan urutan nilai secara asinkron. Ini sering digunakan untuk membuat generator asinkron, juga dikenal sebagai aliran asinkron.

· Fungsi mengembalikan Stream atau StreamSubscription . Alih-alih mengembalikan satu nilai atau Masa Depan, hal ini dapat menghasilkan banyak nilai seiring berjalannya waktu.

· Di dalam fungsi async* , Anda dapat menggunakan hasil untuk memancarkan nilai secara asinkron. Fungsi ini dapat menghentikan sementara eksekusinya menggunakan fungsi async seperti menunggu , tetapi ini tidak umum digunakan.

Ringkasan:

· async digunakan untuk fungsi asinkron yang mengembalikan satu Masa Depan atau nilai.

· async* digunakan untuk fungsi generator asinkron yang menghasilkan urutan nilai dari waktu ke waktu menggunakan Stream.

Intinya, async adalah untuk fungsi yang melakukan operasi asinkron dan mengembalikan satu hasil, sedangkan async* adalah untuk fungsi yang menghasilkan banyak hasil dari waktu ke waktu secara asinkron.

https://medium.com/@chetan.akarte/whats-the-difference-between-async-and-async-in-dart-02051fc8b2fd