Что такое промис и в каких состояниях он может пребывать?

Промисы — это объекты, которые используются в JavaScript при выполнении асинхронных операций. Они упрощают работу с асинхронными операциями и дают более удобные механизмы обработки ошибок, чем коллбэки и события.

Промис может пребывать в одном из трёх состояний:

1. Исполнено (fulfilled) — операция, связанная с промисом, завершена успешно.
2. Отклонено (rejected) — операция, связанная с промисом, завершена с ошибкой.
3. Ожидание (pending) — промис находится в состоянии ожидания, то есть, о нём нельзя сказать, что он завершён успешно или с ошибкой.