Полифил для Promise.allSettled:
Promise.allSettled = function(promises) {
return Promise.all(promises.map(p => Promise.resolve(p).then(value => ({
state: 'fulfilled',
value: value
}), error => ({
state: 'rejected',
reason: error
}))));
};
Promise.allSettled([new Promise((resolve, reject) => resolve(7))]).then((a) => alert(a[0].value));
В Promise.resolve(p).then(value ... я ожидаю, что value будет равно p(промису), почему в итоге выводится все же число? Я думал, что должен работать только вариант p.then(value ... вместо предыдущего кода. Почему исходный вариант выполняется корректно, мы ведь из Promise.resolve(p) возращаем успешный промис со значением p, которое будет value в then?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей