¿Cómo obtener el resultado como una variable (global) de Promises en JavaScript? Encontré muchas respuestas, pero ninguna me ayudó a aplicar a mi problema. Específicamente, quiero obtener los datos del siguiente código. Es la biblioteca node-os-utils .
cpu.usage() .then(info => { console.log(info) })EDITAR:
Traté de editar el código de acuerdo con sus recomendaciones, desafortunadamente todavía no pude encontrar dónde estoy cometiendo un error.
Usé la función async con await . Ahora me gustaría regresar y mostrar el valor en systemdata , pero el resultado muestra Promise <pending> . Supuse que probablemente se deba a que el objeto se está ejecutando en la pila antes de que se complete la promise .
cpu.usage() .then(cpuPercentage => { return cpuPercentage +'%'; }); const printCpuUsage = async () => { const a = await cpu.usage(); return a; }; let systemdata = { cpuCount: cpuCount, cpuModel: cpuModel, cpuUsage: printCpuUsage(), // memoryUsage: , // CPUtemp: , // batteryCycle: , // StorageSize: }; console.log(systemdata) Así que traté de poner async directamente en el objeto. Con el supuesto de que de esta manera la propiedad del objeto tendrá que esperar una promise .
const cpuusage = cpu.usage() .then(cpuPercentage => { return cpuPercentage +'%'; }); let systemdata = { cpuCount: cpuCount, cpuModel: cpuModel, cpuUsage: async () => { const a = await cpuusage; return a; }, // memoryUsage: , // CPUtemp: , // batteryCycle: , // StorageSize: }; console.log(systemdata) Desafortunadamente, este código cpuUsage: [AsyncFunction: cpuUsage]
prueba esto:
// global scope let globalInfo; cpu.usage().then(info => { globalInfo = info; });