Sobes.tech
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);