Estoy tratando de aprender promesas en JS. Tengo una función que calcula la suma o la diferencia de dos números según la operación proporcionada por el usuario.
function compute(firstNum, secondNum, operation) { let result = null; operation === "+" ? (result = firstNum + secondNum) : operation === "-" ? (result = firstNum - secondNum) : console.log("operation not supported"); return result; }Estoy tratando de definir una función que devuelva una promesa que haga esencialmente lo mismo que la función de cálculo anterior.
let operators = { "+": function (a, b) { console.log(a + b); }, "-": function (a, b) { console.log(a - b); }, }; function calculate(firstNum, secondNum, operation) { return new Promise((resolve, reject) => { if (operation === "+" || operation === "-") resolve([firstNum, secondNum, operation]); else reject(new Error("operation not supported")); }); } calculate(5, 51, "-") .then((returnedArr) => { let answer = operators[returnedArr[2]](returnedArr[0], returnedArr[1]); }) .catch((err) => { console.log(err); });¿Es posible pasar más de un argumento a resolve() dentro de una promesa?