Ի՞նչ է տարբերությունը Promise.any և Promise.race միջև։
Frontend
* Ֆունկցիան ընդունում է մաքուր չհամարող զանգված և վերադարձնում է խոստում: * Եթե փոխանցված խոստումներից որևէ մեկը լուծվում է (հաջողությամբ կատարվում է), ապա վերադարձվող խոստումը լուծվում է այդ արժեքով: * Եթե մի քանի խոստումներ հաջողությամբ կատարվեն, ապա վերադարձվող խոստումը * լուծվում է * առաջին հաջող արժեքով, անկախ խոստումների կարգից զանգվածում: * Եթե բոլոր փոխանցված խոստումները մերժվեն, ապա վերադարձվող խոստումը մերժվում է AggregateError սխալի հետ, որը խմբագրում է բոլոր սխալները՝ հաշվի առնելով խոստումների կարգը: * AggregateError կարելի է ստեղծել հետևյալ կերպ: new AggregateError(errors, 'No Promise in any was resolved') function any(promises) { // ձեր կոդը այստեղ }
Ինչու սխալները `any` ֆունկցիայում հնարավոր չէ ավելացնել push-ով, այլ պետք է գրեն ըստ ինդեքսի?
Ի՞նչ կլինի, եթե չփոխանցեք որևէ խոստում sumPromises ֆունկցիային։
Ի՞նչ կլինի, եթե մեկի խոստումներից մեկը մերժվի sumPromises ֆունկցիայում։
Ինչ է Promise.all և Promise.allSettled տարբերությունը?
Ի՞նչ կլինի, եթե փոխանցեք դատարկ ֆունկցիաների ցանկը compose-ին:
Կատարեք sumPromises ֆունկցիան, որը ընդունում է խոստումներ որպես արգումենտներ և վերադարձնում է դրանց արդյունքների գումարը: Ֆունկցիան կարող է ընդունել ցանկացած քանակի արգումենտ: Դուք կարող եք օգտագործել ցանկացած խոստում API։
Կատարեք compose ֆունկցիան, որը ընդունում է փոփոխական թվով ֆունկցիաներ և վերադարձնում նոր ֆունկցիա: Յուրաքանչյուր ֆունկցիայի արդյունքը փոխանցվում է հաջորդին։
Իրականացրեք isMonotonic ֆունկցիան, որը ընդունում է թվերի զանգված և որոշում է, արդյոք այն մոնոտոնիկ է (աճող կամ նվազող): Վերադարձնում է true, եթե զանգվածը մոնոտոնիկ է, հակառակ դեպքում false: Իրականացրեք գծային բարդությամբ O(n):
Ինչու կարող է անհրաժեշտ լինել apply մեթոդը runOnce-ի իրականացման ժամանակ?
Դու գիտե՞ս pipe ձևանմուշը: Ինչո՞վ է այն տարբերվում compose-ից։
Կատարեք runOnce ֆունկցիայի իրականացմանը, որը ընդունում է ֆունկցիա և վերադարձնում նոր ֆունկցիա: Նոր ֆունկցիան կարող է կանչվել միայն մեկ անգամ, բոլոր հաջորդ կանչերը վերադարձնում են undefined: Փաթեթավորված ֆունկցիան կարող է ընդունել արգումենտներ և վերադարձնել արդյունք։
Որ տարբերակը ավելի արագ կլինի՝ Promise.all կամ ցիկլով await-ով յուրաքանչյուր քայլում: Ինչու՞։
Ինչու է անհրաժեշտ rejectedCount հաշվիչը: Ինչու պարզապես չնայել errors զանգվածի երկարությանը?