/ / Створення обіцянок паралельно - javascript, promis, ecmascript-6, es6-promis

Створення обіцянок паралельно - javascript, обіцянка, ecmascript-6, es6-обіцянка

Просто пробую руки es6 та обіцянки.

Чи є спосіб використання обіцянок паралельно виконувати кілька завдань?

Я хочу запустити кілька операцій одночасно і використовувати Promise для створення нової обіцянки, яка буде вирішена, коли всі його вхідні обіцянки будуть вирішені.

The нова обіцянка буде успішний якщо жоден із не виконані обіцянки провалюються; в іншому випадку він вийде з останньої помилки.

Все, що я знаю про обіцянки, - це як створити обіцянки та ланцюжок їх.

let promise = new Promise(function(resolve, reject) {
// do a thing, possibly async, then…

if (/* everything turned out fine */) {
resolve("Successfully completed!");
}
else {
reject(Error("Error occurred!"));
}
});

promise.then(function(result) {
console.log(result); // "Successfully completed!"
}, function(err) {
console.log(err); // Error: "Error occurred!"
});

Відповіді:

2 для відповіді № 1

Ви шукаєте Promise.all

const p1 = Promise.resolve(1)
const p2 = Promise.resolve(2)
const p3 = Promise.resolve(3)

const p4 = Promise.all([p1, p2, p3])

p4.then(values => console.log(values)) // [1, 2, 3]