XMLHttpRequest API был основан на колбэках, что приводило к "колбэк хеллу" (callback hell) — сложному, трудно читаемому и поддерживаемому коду из-за глубокой вложенности функций обратного вызова. Promises предложили более структурированный и управляемый подход к асинхронным операциям, позволяя писать последовательный код, даже когда он асинхронный, через цепочки .then() и обработку ошибок через .catch(). Это упростило работу с такими задачами, как загрузка данных, таймеры и анимации.