Phương thức JavaScript Promise.race ()

Phuong Thuc Javascript Promise Race



Phương thức Promise.race () là một phương thức JavaScript được tích hợp sẵn trong đó lấy một đối số có thể lặp lại của các lời hứa và trả về lời hứa đầu tiên được giải quyết hoặc bị từ chối. Phương thức Promise.race () sẽ trả về giá trị thực hiện hoặc lý do từ chối. Lặp lại là các đối tượng có thể được lặp lại như Mảng, Chuỗi và Bản đồ.

Lời hứa là gì?

Mã không đồng bộ có thể được xử lý bằng các lời hứa. Họ lấy một chức năng được gọi là trình thực thi làm tham số. Khi một lời hứa được tạo, trình thực thi sẽ tự động chạy không đồng bộ và trả về một giá trị trong trường hợp nó được hoàn thành nếu không nó sẽ trả về lý do từ chối:

hãy để example_promise = newPromise ( ( giải quyết, từ chối ) => {
giải quyết ( 'Lời hứa đã được giải quyết' ) ;
} ) ;

example_promise. sau đó ( r => bàn điều khiển. khúc gỗ ( r ) ) ;







Bản chất không đồng bộ của lời hứa:



hãy để example_promise = newPromise ( ( giải quyết, từ chối ) => {
giải quyết ( 'Lời hứa đã được giải quyết' ) ;
} ) ;

example_promise. sau đó ( r => bàn điều khiển. khúc gỗ ( r ) ) ;
bàn điều khiển. khúc gỗ ( '1,2,3...' ) ;



Làm thế nào để sử dụng phương thức Promise.race ()?

Chuyển một phương thức có thể lặp lại của các lời hứa đến phương thức Promise.race () và nhận giá trị trả về của nó trong biến:





hãy để prom1 = newPromise ( ( giải quyết, từ chối ) => {
  setTimeout ( ( ) => giải quyết ( 'Lời hứa đã được giải quyết' ) , 500 ) ;
} ) ;

hãy để prom2 = newPromise ( ( giải quyết, từ chối ) => {
  setTimeout ( ( ) => Từ chối ( 'Lời hứa không thể được giải quyết' ) , 250 ) ;
} ) ;

để tạm thời = Hứa. cuộc đua ( [ prom1, prom2 ] ) ;

nhiệt độ. chụp lấy ( lý do => bàn điều khiển. khúc gỗ ( lý do ) ) ;

Trong ví dụ này, chúng tôi có hai lời hứa. Lời hứa đầu tiên được giải quyết sau 500ms và lời hứa thứ hai bị từ chối chỉ sau 250 giây. Vì lời hứa thứ hai là lời hứa đầu tiên được giải quyết hoặc bị từ chối, nó được trả về bởi phương thức Promise.race ().



Nếu đối số được truyền cho phương thức Promise.race () là một phương thức có thể lặp lại rỗng thì phương thức này sẽ trả về một lời hứa mãi mãi đang chờ xử lý:

để tạm thời = Hứa. cuộc đua ( [ ] ) ;

bàn điều khiển. khúc gỗ ( nhiệt độ ) ;

Nếu đối số có thể lặp lại có bất kỳ giá trị không phải hứa hẹn hoặc lời hứa nào đã được thực hiện hoặc bị từ chối thì phương thức sẽ giải quyết cho giá trị đầu tiên trong mảng:

để p1 = newPromise ( ( giải quyết, từ chối ) => {
giải quyết ( 'P1 đã được giải quyết' ) ;
} ) ;

để p2 = newPromise ( ( giải quyết, từ chối ) => {
giải quyết ( 'P2 đã được giải quyết' ) ;
} ) ;

để tạm thời = Hứa. cuộc đua ( [ p1, p2 ] ) ;
nhiệt độ. sau đó ( giá trị => bàn điều khiển. khúc gỗ ( giá trị ) ) ;

Phương thức Promise.race () kiểm tra cả các lời hứa đã giải quyết và bị từ chối. Phương thức này cũng có một phương thức thay thế khác là phương thức Promise.any () có thể được sử dụng để chỉ kiểm tra các lời hứa đã thực hiện.

Sự kết luận

Phương thức Promise.race () được sử dụng để nhận được lời hứa đầu tiên được thực hiện hoặc bị từ chối từ một lời hứa có thể lặp lại. Lời hứa được thực hiện hoặc bị từ chối sớm nhất là giá trị trả về của Promise.race (). Bài viết đã cung cấp thông tin chi tiết chuyên sâu về phương thức Promise.race ().