Promise¶
Note
EcmaScript6
- class
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){ ... });