Задачка на промисы
Есть 3 функции :
function foo(callback) {
setTimeout(function () {
callback('A');
}, Math.random() * 100);
}
function bar(callback) {
setTimeout(function () {
callback('B');
}, Math.random() * 100);
}
function baz(callback) {
setTimeout(function () {
callback('C');
}, Math.random() * 100);
}
Как, не меняя функции, вывести с помощью них в консоль A B C в такой последовательности при каждом запуске?
Ответы (1 шт):
Автор решения: Oliver Patterson
→ Ссылка
function foo(callback) {
setTimeout(function () {
callback('A');
}, Math.random() * 100);
}
function bar(callback) {
setTimeout(function () {
callback('B');
}, Math.random() * 100);
}
function baz(callback) {
setTimeout(function () {
callback('C');
}, Math.random() * 100);
}
Promise.all(
[
new Promise((resolve) => foo(resolve)),
new Promise((resolve) => bar(resolve)),
new Promise((resolve) => baz(resolve))
]
)
.then((values) =>
{
values.forEach((value) => console.log(value))
});