Estoy tratando de alcanzar el resultado de Promise en un componente de función de Reactjs, pero no me funciona. Cuando devuelvo el resultado de la función, solo obtengo Promise. Mi objetivo es devolver un objeto contenido en [[Promise Result]].
const params = ['ACT', 'STBY', 'STBYH']; const getActStby = async address => { const getActStbyParams = await getXhr({ url: `./scripts/system_read_config?${xhrParam(address, params)}` }); return getActStbyParams; };Luego lo llamo más tarde en un código y lo asigno al objeto como una nueva propiedad:
newItemEqpt.isAct = getActStby(getNetworkAddress(item.from.FROM, item.to.TO)); El resultado de estas actividades está "parcialmente" bien. Cuando consola.log el objeto, Promise se cumple, pero lo que quería era asignar la matriz de parameters en [[Promise result]] directamente a la propiedad isAct . ¿Cómo puedo hacer esto?
isAct: Promise [[Prototype]]: Promise [[PromiseState]]: "fulfilled" [[PromiseResult]]: Object parameters: (3) [{…}, {…}, {…}] [[Prototype]]: ObjectLa función getActStby declarada como async , por lo que debe await para obtener sus resultados de esta manera;
newItemEqpt.isAct = await getActStby(getNetworkAddress(item.from.FROM, item.to.TO)); Para poder usar la palabra clave await como la anterior, la llamada de función a getActStby también debe realizarse en una función async ; de lo contrario, deberá encadenar la función con un método then y acceder al valor de retorno de esa función mediante una devolución de llamada.