A continuación se muestra el código, quiero devolver la suma de todos los elementos de la matriz, ¿por qué no funciona? Sé que no necesitamos la Promesa para lograr eso, pero me gustaría saber cómo se puede hacer con una Promesa.
const arr = [1, 5, 7, 8]; function sumPromise(a, b) { return new Promise((res) => { setTimeout(() => { res(a + b); }, 1000); }); } let res = arr.reduce(sumPromise); res.then((a) => console.log(a));salida: [promesa de objeto] 8
Espero que esto sea de ayuda
const arr = [1, 5, 7, 8]; function sumPromise(a, b) { return new Promise((res) => { setTimeout(() => { a.then(item => res(item + b)) }, 1000); }); } let res = arr.reduce(sumPromise, Promise.resolve(0)); res.then((a) => console.log(a));Sin cambiar sumPromise
const arr = [1, 5, 7, 8]; function sumPromise(a, b) { return new Promise((res) => { setTimeout(() => { res(a + b); }, 1000); }); } let res = arr.reduce( (a, b) => a.then(item => sumPromise(item, b)), Promise.resolve(0) ); res.then(console.log); let total = 0; const arr = [1, 5, 7, 8]; function sumPromise(a, b) { return new Promise((res) => { setTimeout(() => { res(total = total + b); }, 1000); }); } let res = arr.reduce(sumPromise, total); res.then((a) => console.log(total));