JavaScript Promise.race() Метод

Javascript Promise Race Metod



Методът Promise.race() е вграден метод на JavaScript, който приема итерируем от обещания като аргумент и връща първото обещание, което е разрешено или отхвърлено. Методът Promise.race() ще върне стойността на изпълнение или причината за отхвърляне. Итерируемите са обекти, които могат да бъдат преминавани през цикъл, като например масиви, низове и карти.

Какво изобщо са обещанията?

Асинхронният код може да се обработва с обещания. Те приемат функция, известна като изпълнител, като параметър. Когато се създаде обещание, изпълнителят автоматично се изпълнява асинхронно и връща стойност, в случай че е изпълнено, в противен случай връща причината за отхвърляне:

нека example_promise = новообещание ( ( разрешавам, отхвърлям ) => {
разрешавам ( „Обещанието е изпълнено“ ) ;
} ) ;

пример_обещание. тогава ( r => конзола. дневник ( r ) ) ;







Асинхронен характер на обещанията:



нека example_promise = новообещание ( ( разрешавам, отхвърлям ) => {
разрешавам ( „Обещанието е изпълнено“ ) ;
} ) ;

пример_обещание. тогава ( r => конзола. дневник ( r ) ) ;
конзола. дневник ( '1,2,3...' ) ;



Как да използвам метода Promise.race()?

Предайте итерируем от обещания към метода Promise.race() и получете неговата върната стойност в променлива:





нека prom1 = новообещание ( ( разрешавам, отхвърлям ) => {
setTimeout ( ( ) => разрешавам ( „Обещанието е изпълнено“ ) , 500 ) ;
} ) ;

нека prom2 = новообещание ( ( разрешавам, отхвърлям ) => {
setTimeout ( ( ) => отхвърлям ( „Обещанието не може да бъде разрешено“ ) , 250 ) ;
} ) ;

нека темп = обещание. раса ( [ бал 1, бал 2 ] ) ;

темп. улов ( причина => конзола. дневник ( причина ) ) ;

В този пример имахме две обещания. Първото обещание беше разрешено след 500 ms, а второто обещание беше отхвърлено след 250 секунди. Тъй като второто обещание беше първото, което беше разрешено или отхвърлено, то беше върнато от метода Promise.race().



Ако аргументът, подаден на метода Promise.race(), е празен итерируем, тогава методът ще върне вечно чакащо обещание:

нека темп = обещание. раса ( [ ] ) ;

конзола. дневник ( темп ) ;

Ако аргументът iterable има някакви необещаващи стойности или обещания, които вече са изпълнени или отхвърлени, тогава методът ще се задоволи с първата стойност в масива:

нека p1 = новообещание ( ( разрешавам, отхвърлям ) => {
разрешавам ( „P1 е решен“ ) ;
} ) ;

нека p2 = новообещание ( ( разрешавам, отхвърлям ) => {
разрешавам ( „P2 е решен“ ) ;
} ) ;

нека темп = обещание. раса ( [ p1,p2 ] ) ;
темп. тогава ( стойност => конзола. дневник ( стойност ) ) ;

Проверка на метода Promise.race() за разрешени и отхвърлени обещания. Този метод има и друга алтернатива, която е методът Promise.any(), който може да се използва само за проверка за изпълнени обещания.

Заключение

Методът Promise.race() се използва за получаване на първото обещание, което е или изпълнено, или отхвърлено от повторение на обещания. Обещанието, което се изпълнява или отхвърля най-рано, е върнатата стойност на Promise.race(). Написването предостави задълбочено вникване в метода Promise.race().