Junior — Middle
Promise.all жана Promise.any функцияларынын иштөөдө кандай айырмачылыгы бар?
sobes.tech AI
AIден жооп
Promise.all бир нече убада массивын кабыл алат жана жаңы бир убада кайтарат:
- эгер массивдеги бардык убада ийгиликтүү аяктагандан кийин, натыйжалардын массивин ошол эле тартипте кайтарат;
- эгер кеминде бир убада четке кагылса, ошол убада катасы менен дароо четке кагылат.
Promise.any бир нече убада массивын кабыл алат жана мындай убада кайтарат:
- ар кандай бирөө ийгиликтүү аяктагандан кийин, анын натыйжасын кайтарат;
- эгер бардык убада четке кагылса, бардык убада каталары менен бириккен AggregateError менен четке кагылат.
Мисал:
const p1 = Promise.reject('Ката 1');
const p2 = Promise.resolve('Ийгилик 2');
const p3 = Promise.resolve('Ийгилик 3');
Promise.all([p1, p2, p3])
.then(console.log) // чакырылбайт
.catch(console.error); // көрсөтөт 'Ката 1'
Promise.any([p1, p2, p3])
.then(console.log) // көрсөтөт 'Ийгилик 2'
.catch(console.error);