¿Cómo convertir esta función sin usar if/else?
function Menu() { if (!currentUser || currentUser.getValue == 7) { return false } else { return true }}
¿Quizás solo hacer?
function validateMenu() { return p.currentUser && p.currentUser.getValue('id') !== 7 }Realmente no entiendo por qué querrías usar una devolución de llamada o una Promesa para este caso. No hay nada asíncrono involucrado, solo se verifican dos condiciones simples.
Es posible que desee leer un poco más sobre las devoluciones de llamada y las promesas.
Es
let showMenu = (!p.currentUser || p.currentUser.getValue('id') === 7) ? false : true;Si quieres usar promesas puedes
function validateMenu() { return new Promises((resolve, reject) => { if (!p.currentUser || p.currentUser.getValue('id') === 7) { resolve(false) } else { resolve(true) } }); }No necesita la declaración if...else o el operador condicional (ternario) , solo puede usar la expresión de la función de flecha y los operadores lógicos :
const Menu = () => !!currentUser && currentUser.getValue('id') !== 7;