Note
EcmaScript6
Promise
()Асинхронная операция.
Состояния операции:
fulfilled - выполнено - вызвана функция resolve с аргументом, не являющимся объектом Promise
или без аргументов
rejected - отклонено - вызвана функция reject или возникло исключение внутри исполнителя
pending - ожидание - resolve или reject не вызваны
settled - завершено - выполнена или отклонена и не находится в режиме ожидания
var promise = new Promise(
function(resolve, reject){
var request = new XMLHttpRequest();
request.open("GET", "data.json");
request.addEventListener("load", function(){
if (request.status === 200){
resolve(request.responseText);
} else {
reject(request.status);
}
}, false);
request.addEventListener("error", function(){
reject("Error");
}, false);
request.send();
}
);
Promise.
all
(iterable)Возвращает объект Promiseб когда все объекты в итерируемом объекте будут выполнены.
Если один из объектов будет отклонен, он немедленно вернется.
var p1 = new Promise(...);
var p2 = new Promise(...);
Promise.all([p1, p2]).then(...);
Promise.
catch
(onRejected)Используется для обработки ошибок и исключений
promise.catch(function(reason){
...
});
Promise.
race
(iterable)Возвращает объект Promise сразу, как только один из объектов будет выполнен или отклонен
Promise.
reject
(value)Преобразует значение в отклоненный объект Promise.
var p1 = Promise.reject(5);
p1.then(null, function(value){
console.log(value);
});
// 5
Promise.
resolve
(value)Преобразует значение в возвращаемый объект Promise.
var p1 = Promise.resolve(5);
p1.then(function(value){
console.log(value);
});
// 5
Promise.
then
(onFulfilled, onRejected)Позволяет выполнить некоторые действия после того, как асинхронная операция будет выполнена или отклонена.
promise.then(
function(value){
...
},
function(reason){
...
});