Статьи / JavaScript


Обещания (Promise) отложенные вычисления

Обещания или Promise - отложенные вычисления с передачей возвращаемого значения по цепочке. По сути это асинхронная цепь последовательных вызовов.

var p1 = new Promise(function(resolve, reject) {
resolve();
});

p1.then(function() {
return 'Эники';
}).then(function(val){
return val + ' бэники';
}).then(function(val){
return val + ' ели';
}).then(function(val){
return val + ' варенеки!';
}).then(function(val) {
console.log(val); //Эники Бэники ели вареники
});


Promise.all


Объявляем и вызываем функции, которые возвращают свои значения в массиве в then (val)

Promise.all([
function() {
return 'Эники';
}(),
function(){
return ' бэники';
}(),
function(){
return ' ели';
}(),
function(){
return ' варенеки!';
}()
]).then(function(val){
var arr = val; //[ 'Эники', ' бэники', ' ели', ' варенеки!' ]
console.log(arr.join('')); //Эники Бэники ели вареники
});