From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../global_objects/promise/all/index.html | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/promise/all/index.html (limited to 'files/ru/web/javascript/reference/global_objects/promise/all/index.html') diff --git a/files/ru/web/javascript/reference/global_objects/promise/all/index.html b/files/ru/web/javascript/reference/global_objects/promise/all/index.html new file mode 100644 index 0000000000..9d8fba83b6 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/promise/all/index.html @@ -0,0 +1,122 @@ +--- +title: Promise.all() +slug: Web/JavaScript/Reference/Global_Objects/Promise/all +tags: + - ECMAScript6 + - JavaScript + - Обещание + - метод +translation_of: Web/JavaScript/Reference/Global_Objects/Promise/all +--- +
{{JSRef}}
+ +

Общее описание

+ +

Метод Promise.all(iterable) возвращает обещание, которое выполнится тогда, когда будут выполнены все обещания, переданные в виде перечисляемого аргумента, или отклонено любое из переданных обещаний.

+ +

Синтаксис

+ +
Promise.all(iterable);
+ +

Параметры

+ +
+
iterable
+
Перечисляемый объект, например, массив ({{jsxref("Array")}}). Смотрите iterable.
+
+ +

Возвращаемое значение

+ +

{{jsxref("Promise")}}, который будет выполнен когда будут выполнены все обещания, переданные в виде перечисляемого аргумента, или отклонен, если будет отклонено хоть одно из переданных обещаний.

+ +

Описание

+ +

Promise.all возвращает массив значений от всех обещаний, которые были ему переданы. Возвращаемый массив значений сохраняет порядок оригинального перечисляемого объекта, но не порядок выполнения обещаний. Если какой-либо элемент перечисляемого объекта не является обещанием, то он будет преобразован с помощью метода {{jsxref("Promise.resolve")}}.

+ +

Если одно из переданных обещаний будет отклонено, Promise.all будет немедлено отклонен со значением отклоненного обещания, не учитывая другие обещания, независимо выполнены они или нет. Если в качестве аргумента будет передан пустой массив, то Promise.all будет выполнен немедленно

+ +

Примеры

+ +

Использование Promise.all

+ +

Promise.all ждет выполнения всех обещаний (или первого метода reject()).

+ +
var p1 = Promise.resolve(3);
+var p2 = 1337;
+var p3 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 100, "foo");
+});
+
+Promise.all([p1, p2, p3]).then(values => {
+  console.log(values);
+});
+
+//Выведет:
+// [3, 1337, "foo"] 
+
+ +

Promise.all поведение немедленного отклонения

+ +

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

+ +
var p1 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 1000, "one");
+});
+var p2 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 2000, "two");
+});
+var p3 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 3000, "three");
+});
+var p4 = new Promise((resolve, reject) => {
+  setTimeout(resolve, 4000, "four");
+});
+var p5 = new Promise((resolve, reject) => {
+// Это обещание прервет Promise.all
+  reject("reject");
+});
+
+Promise.all([p1, p2, p3, p4, p5]).then(value => {
+  console.log(value);
+}, reason => {
+  console.log(reason)
+});
+
+//Выведет:
+//"reject"
+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусПояснение
{{SpecName('ESDraft', '#sec-promise.all', 'Promise.all')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-promise.all', 'Promise.all')}}{{Spec2('ES6')}}Первоначальный вариант в стандарте ECMA.
+ +

Совместимость с браузерами

+ +

{{Compat("javascript.builtins.Promise.all")}}

+ +
 
+ +

Родственные темы

+ + -- cgit v1.2.3-54-g00ecf