JavaScript Promise.race() Paraan

Javascript Promise Race Paraan



Ang Promise.race() na paraan ay isang built-in na paraan ng JavaScript na kumukuha ng iterable ng mga pangako bilang argumento at ibinabalik ang unang pangako na naresolba o tinanggihan. Ang Promise.race() na paraan ay ibabalik ang halaga ng katuparan o ang dahilan ng pagtanggi. Ang mga iterable ay mga bagay na maaaring i-loop gaya ng Arrays, Strings at Maps.

Ano nga ba ang mga Pangako?

Ang asynchronous code ay maaaring makitungo sa mga pangako. Kumuha sila ng isang function na kilala bilang executor bilang isang parameter. Kapag ang isang pangako ay nilikha, ang tagapagpatupad ay awtomatikong tumatakbo nang asynchronously at nagbabalik ng isang halaga kung sakaling ito ay natupad kung hindi ito ay nagbabalik ng dahilan ng pagtanggi:

hayaan ang halimbawa_pangako = bagong Pangako ( ( lutasin, tanggihan ) => {
lutasin ( 'Ang pangako ay nalutas na' ) ;
} ) ;

halimbawa_pangako. pagkatapos ( r => console. log ( r ) ) ;







Asynchronous na katangian ng mga pangako:



hayaan ang halimbawa_pangako = bagong Pangako ( ( lutasin, tanggihan ) => {
lutasin ( 'Ang pangako ay nalutas na' ) ;
} ) ;

halimbawa_pangako. pagkatapos ( r => console. log ( r ) ) ;
console. log ( '1,2,3...' ) ;



Paano gamitin ang Promise.race() Method?

Magpasa ng iterable ng mga pangako sa Promise.race() na paraan at makuha ang return value nito sa variable:





hayaan ang prom1 = bagong Pangako ( ( lutasin, tanggihan ) => {
setTimeout ( ( ) => lutasin ( 'Ang pangako ay nalutas na' ) , 500 ) ;
} ) ;

hayaan ang prom2 = bagong Pangako ( ( lutasin, tanggihan ) => {
setTimeout ( ( ) => tanggihan ( 'Ang pangako ay hindi malutas' ) , 250 ) ;
} ) ;

hayaan ang temp = Pangako. lahi ( [ prom1, prom2 ] ) ;

temp. mahuli ( dahilan => console. log ( dahilan ) ) ;

Sa halimbawang ito mayroon kaming dalawang pangako. Ang unang pangako ay nalutas pagkatapos ng 500ms at ang pangalawang pangako ay tinanggihan pagkatapos lamang ng 250 segundo. Dahil ang pangalawang pangako ay ang unang nalutas o tinanggihan ito ay ibinalik sa pamamagitan ng Promise.race() na paraan.



Kung ang argumento ay ipinasa sa Promise.race() na pamamaraan ay isang walang laman na iterable, ang pamamaraan ay magbabalik ng isang walang hanggang nakabinbing pangako:

hayaan ang temp = Pangako. lahi ( [ ] ) ;

console. log ( temp ) ;

Kung ang argument na iterable ay may anumang mga hindi pangako na halaga o mga pangako na natupad na o tinanggihan, ang pamamaraan ay maaayos para sa unang halaga sa array:

hayaan ang p1 = bagong Pangako ( ( lutasin, tanggihan ) => {
lutasin ( 'Naresolba na ang P1' ) ;
} ) ;

hayaan ang p2 = bagong Pangako ( ( lutasin, tanggihan ) => {
lutasin ( 'Naresolba na ang P2' ) ;
} ) ;

hayaan ang temp = Pangako. lahi ( [ p1,p2 ] ) ;
temp. pagkatapos ( halaga => console. log ( halaga ) ) ;

Promise.race() method check para sa parehong naresolba at tinanggihang mga pangako. Ang pamamaraang ito ay mayroon ding isa pang alternatibo na kung saan ay ang Promise.any() na pamamaraan na maaaring magamit upang suriin lamang ang mga natupad na pangako.

Konklusyon

Ang Promise.race() na paraan ay ginagamit upang makuha ang unang pangako na maaaring natupad o tinatanggihan mula sa isang iterable ng mga pangako. Ang pangako na natupad o tinanggihan ang pinakamaagang ay ang return value ng Promise.race(). Ang write-up ay nagbigay ng malalim na insight sa Promise.race() na paraan.