Метод ЈаваСцрипт Промисе.раце().

Metod Javascript Promise Race



Метод Промисе.раце() је уграђени метод ЈаваСцрипт-а који узима итерабле обећања као аргумент и враћа прво обећање које је решено или одбијено. Метод Промисе.раце() ће или вратити вредност испуњења или разлог за одбијање. Итераблес су објекти који се могу проћи кроз петљу, као што су низови, стрингови и мапе.

Шта су уопште обећања?

Асинхрони код се може носити са обећањима. Као параметар узимају функцију познату као извршилац. Када се обећање креира, извршилац се аутоматски покреће асинхроно и враћа вредност у случају да је испуњено, иначе враћа разлог за одбијање:

нека пример_обећање = невПромисе ( ( решити, одбацити ) => {
решити ( 'Обећање је решено' ) ;
} ) ;

екампле_промисе. онда ( р => конзола. Пријава ( р ) ) ;







Асинхрона природа обећања:



нека пример_обећање = невПромисе ( ( решити, одбацити ) => {
решити ( 'Обећање је решено' ) ;
} ) ;

екампле_промисе. онда ( р => конзола. Пријава ( р ) ) ;
конзола. Пријава ( '1,2,3...' ) ;



Како користити метод Промисе.раце()?

Проследите итерабле обећања методу Промисе.раце() и добијте његову повратну вредност у променљивој:





нека пром1 = невПромисе ( ( решити, одбацити ) => {
сетТимеоут ( ( ) => решити ( 'Обећање је решено' ) , 500 ) ;
} ) ;

нека пром2 = невПромисе ( ( решити, одбацити ) => {
сетТимеоут ( ( ) => одбити ( 'Обећање се није могло решити' ) , 250 ) ;
} ) ;

нека темп = Обећај. трка ( [ матура1, матура2 ] ) ;

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

У овом примеру имали смо два обећања. Прво обећање је решено након 500 мс, а друго обећање је одбијено након 250 секунди. Пошто је друго обећање било прво које је било решено или одбијено, враћено је методом Промисе.раце().



Ако је аргумент који је прослеђен методи Промисе.раце() празан итерабле, онда ће метода вратити обећање на чекању заувек:

нека темп = Обећај. трка ( [ ] ) ;

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

Ако аргумент итерабле има било какве вредности које нису обећане или обећања која су већ испуњена или одбијена, онда ће се метод задовољити са првом вредношћу у низу:

нека п1 = невПромисе ( ( решити, одбацити ) => {
решити ( „П1 је решен“ ) ;
} ) ;

нека п2 = невПромисе ( ( решити, одбацити ) => {
решити ( „П2 је решен“ ) ;
} ) ;

нека темп = Обећај. трка ( [ п1,п2 ] ) ;
темп. онда ( вредност => конзола. Пријава ( вредност ) ) ;

Промисе.раце() провера метода за решена и одбијена обећања. Овај метод такође има другу алтернативу, а то је Промисе.ани() метод који се може користити само за проверу испуњених обећања.

Закључак

Промисе.раце() метода се користи за добијање првог обећања које је или испуњено или одбијено из итерабле обећања. Обећање које је најраније испуњено или одбијено је повратна вредност Промисе.раце(). Запис је пружио дубински увид у метод Промисе.раце().