Kaedah JavaScript Promise.race().

Kaedah Javascript Promise Race



Kaedah Promise.race() ialah kaedah terbina dalam JavaScript yang mengambil janji yang boleh diubah sebagai hujah dan mengembalikan janji pertama yang diselesaikan atau ditolak. Kaedah Promise.race() sama ada akan mengembalikan nilai pemenuhan atau sebab penolakan. Iterables ialah objek yang boleh dilingkarkan seperti Tatasusunan, Rentetan dan Peta.

Apa itu Janji?

Kod tak segerak boleh ditangani dengan janji. Mereka mengambil fungsi yang dikenali sebagai pelaksana sebagai parameter. Apabila janji dibuat, pelaksana secara automatik berjalan secara tidak segerak dan mengembalikan nilai sekiranya ia dipenuhi jika tidak ia mengembalikan sebab penolakan:

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

contoh_janji. kemudian ( r => konsol. log ( r ) ) ;







Sifat janji tak segerak:



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

contoh_janji. kemudian ( r => konsol. log ( r ) ) ;
konsol. log ( '1,2,3...' ) ;



Bagaimana untuk menggunakan Kaedah Promise.race()?

Hantarkan janji yang boleh diulang kepada kaedah Promise.race() dan dapatkan nilai pulangannya dalam pembolehubah:





mari prom1 = Janji baru ( ( menyelesaikan, menolak ) => {
setTimeout ( ( ) => azam ( 'Janji telah diselesaikan' ) , 500 ) ;
} ) ;

jom prom2 = Janji baru ( ( menyelesaikan, menolak ) => {
setTimeout ( ( ) => menolak ( 'Janji tidak dapat diselesaikan' ) , 250 ) ;
} ) ;

biarkan temp = Janji. bangsa ( [ prom1, prom2 ] ) ;

temp. tangkap ( sebab => konsol. log ( sebab ) ) ;

Dalam contoh ini kami mempunyai dua janji. Janji pertama diselesaikan selepas 500ms dan janji kedua ditolak hanya selepas 250 saat. Oleh kerana janji kedua adalah yang pertama sama ada diselesaikan atau ditolak, ia dikembalikan oleh kaedah Promise.race().



Jika hujah diserahkan kepada kaedah Promise.race() ialah boleh lelar kosong maka kaedah itu akan mengembalikan janji yang belum selesai selama-lamanya:

biarkan temp = Janji. bangsa ( [ ] ) ;

konsol. log ( temp ) ;

Jika hujah boleh lelar mempunyai sebarang nilai bukan janji atau janji yang telah dipenuhi atau ditolak maka kaedah akan menyelesaikan nilai pertama dalam tatasusunan:

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

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

biarkan temp = Janji. bangsa ( [ p1,p2 ] ) ;
temp. kemudian ( nilai => konsol. log ( nilai ) ) ;

Semakan kaedah Promise.race() untuk kedua-dua janji yang diselesaikan dan ditolak. Kaedah ini juga mempunyai alternatif lain iaitu kaedah Promise.any() yang boleh digunakan untuk hanya menyemak janji yang dipenuhi.

Kesimpulan

Kaedah Promise.race() digunakan untuk mendapatkan janji pertama yang sama ada dipenuhi atau ditolak daripada janji yang boleh diubah. Janji yang ditepati atau ditolak paling awal ialah nilai pulangan Promise.race(). Tulisan memberikan pandangan mendalam tentang kaedah Promise.race().