Какие преимущества и недостатки при использовании промисов вместо колбэков (callbacks)?
Преимущества
Помогает избежать “callback hell”, который может быть нечитаемым.
Упрощает написание последовательного удобочитаемого асинхронного кода с помощью then().
Упрощает написание параллельного асинхронного кода с помощью Promise.all().
С использованием промисов можно избежать следующих проблем: колбэк-функция была вызвана слишком рано, поздно или вовсе не была вызвана; функция была вызвана слишком мало или слишком много раз; не удалось передать необходимую среду/параметры; были пропущены ошибки/исключения.
Недостатки
Чуть более сложный код.
В старых браузерах, где не поддерживается ES2015, нужно загрузить полифил, чтобы их использовать.