Возьмем типичную задачу. Нужно сделать ajax запрос куда нибудь.
Так бы выглядело на Колбеках:
(function(error,callback){
var random = Math.floor(Math.random()*2001);
var res = setTimeout(function(){
clearTimeout(rej)
callback(random)
},random);
var rej = setTimeout(function(){
clearTimeout(res)
error(new Error(random))
},1000);
})(function(num){
console.log(num)
},function(error){
console.log(error)
})
А так на Обещаниях:
(function(){
return new Promise(function(resolve, reject){
var random = Math.floor(Math.random()*2001);
setTimeout(function(){
resolve(random)
},random);
setTimeout(function(){
reject(new Error(random))
},1000);
});
})()
.then(function(result){
console.log(result)
})
.catch(function(error){
console.log(error)
})
Допустим если сервер не может отдать больше секунды нам данные, нужно включить "please wait, loading"
Отличий на первый взгляд немного
Но вариант с Обещаниями предпочтительнее, потому как если логика будет меняться, расти, то с Колбеками с ума сойти можно