Ответ 1
Promises обеспечивают более сжатый и понятный способ представления последовательных асинхронных операций в javascript. Они представляют собой отличный синтаксис для достижения того же эффекта, что и обратные вызовы. Преимуществом является повышенная читаемость. Что-то вроде этого
aAsync()
.then(bAsync)
.then(cAsync)
.done(finish);
является гораздо более читаемым, чем эквивалент передачи каждой из этих отдельных функций в качестве обратных вызовов, таких как
Async(function(){
return bAsync(function(){
return cAsync(function(){
finish()
})
})
});