Metode JavaScript Promise.race()

Metode Javascript Promise Race



Metode Promise.race() adalah metode bawaan JavaScript yang mengambil sebuah iterable dari janji sebagai argumen dan mengembalikan janji pertama yang diselesaikan atau ditolak. Metode Promise.race() akan mengembalikan nilai pemenuhan atau alasan penolakan. Iterables adalah objek yang dapat diulang seperti Array, String, dan Peta.

Apa itu Janji?

Kode asinkron dapat ditangani dengan janji. Mereka mengambil fungsi yang dikenal sebagai eksekutor sebagai parameter. Ketika janji dibuat, pelaksana secara otomatis berjalan secara tidak sinkron dan mengembalikan nilai jika dipenuhi jika tidak, ia mengembalikan alasan penolakan:

biarkan contoh_janji = janji baru ( ( menyelesaikan, menolak ) => {
menyelesaikan ( 'Janji telah diselesaikan' ) ;
} ) ;

contoh_janji. kemudian ( r => menghibur. catatan ( r ) ) ;







Sifat janji yang tidak sinkron:



biarkan contoh_janji = janji baru ( ( menyelesaikan, menolak ) => {
menyelesaikan ( 'Janji telah diselesaikan' ) ;
} ) ;

contoh_janji. kemudian ( r => menghibur. catatan ( r ) ) ;
menghibur. catatan ( '1,2,3...' ) ;



Bagaimana cara menggunakan Metode Promise.race()?

Berikan janji yang dapat diubah ke metode Promise.race() dan dapatkan nilai pengembaliannya dalam variabel:





biarkan prom1 = janji baru ( ( menyelesaikan, menolak ) => {
atur waktu habis ( ( ) => menyelesaikan ( 'Janji telah diselesaikan' ) , 500 ) ;
} ) ;

biarkan prom2 = janji baru ( ( menyelesaikan, menolak ) => {
atur waktu habis ( ( ) => menolak ( 'Janji tidak bisa ditepati' ) , 250 ) ;
} ) ;

biarkan suhu = Janji. balapan ( [ prom1, prom2 ] ) ;

suhu menangkap ( alasan => menghibur. catatan ( alasan ) ) ;

Dalam contoh ini kami memiliki dua janji. Janji pertama diselesaikan setelah 500 ms dan janji kedua ditolak hanya setelah 250 detik. Karena janji kedua adalah yang pertama diselesaikan atau ditolak, itu dikembalikan oleh metode Promise.race().



Jika argumen yang diteruskan ke metode Promise.race() adalah iterable kosong maka metode tersebut akan mengembalikan janji yang selamanya tertunda:

biarkan suhu = Janji. balapan ( [ ] ) ;

menghibur. catatan ( suhu ) ;

Jika argumen iterable memiliki nilai atau janji non-janji yang telah dipenuhi atau ditolak maka metode akan menerima nilai pertama dalam array:

biarkan p1 = janji baru ( ( menyelesaikan, menolak ) => {
menyelesaikan ( 'P1 telah diselesaikan' ) ;
} ) ;

biarkan p2 = janji baru ( ( menyelesaikan, menolak ) => {
menyelesaikan ( 'P2 telah diselesaikan' ) ;
} ) ;

biarkan suhu = Janji. balapan ( [ p1, p2 ] ) ;
suhu kemudian ( nilai => menghibur. catatan ( nilai ) ) ;

Metode Promise.race() memeriksa janji yang diselesaikan dan ditolak. Metode ini juga memiliki alternatif lain yaitu metode Promise.any() yang dapat digunakan untuk hanya memeriksa janji yang terpenuhi.

Kesimpulan

Metode Promise.race() digunakan untuk mendapatkan janji pertama yang dipenuhi atau ditolak dari janji yang dapat diubah. Janji yang dipenuhi atau ditolak paling awal adalah nilai pengembalian dari Promise.race(). Tulisan ini memberikan wawasan mendalam tentang metode Promise.race().