JavaScript Promise.any() — перша УСПІШНА обіцянка


Promise.any() повертає результат першої успішної обіцянки, а невдалі просто ігнорує.

автор: NagarD

Загальний опис

Різниця з race тут принципова, і на ній легко обпектися. race віддає першу, що завершилась — навіть якщо вона впала. any чекає на першу, що вдалась, і падає лише тоді, коли впали геть усі.

Типове застосування — кілька дзеркал одного ресурсу: беремо те, що відповіло першим, а решта хай собі падає.

Якщо не вдалась жодна, any кидає особливу помилку — AggregateError, у полі errors якої лежать усі причини невдач.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
any 85+ 79+ 14+ 71+ 85+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
any 85+ yes yes 14+

Приклади

+ запропонувати свій приклад у пісочниці

Кілька дзеркал — беремо те, що відповіло першим.

// top-level await працює лише в модулях — тут той самий код в async-функції
(async () => {
    try {
        const data = await Promise.any([
            fetch('https://mirror-1.example/data').then(r => r.json()),
            fetch('https://mirror-2.example/data').then(r => r.json()),
            fetch('https://mirror-3.example/data').then(r => r.json()),
        ]);

        console.log('Перше вдале дзеркало:', data);
    } catch (error) {
        // не вдалось ЖОДНЕ
        console.error(error.errors); // масив усіх причин
    }
})();
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід