Hola, soy un codificador nuevo y vi este ayudante de Electron para solicitar un valor a través de la entrada. https://github.com/p-sam/electron-prompt . Me preguntaba cómo almacenaría el valor de la entrada del usuario. Este es el código que tengo, pero realmente no entiendo cómo extraer los datos (entrada del usuario) del código para usar. Agradecería cualquier ayuda, gracias!
async function getStoreId() { prompt({ title: 'Get StoreId', label: 'Store ID: ', value: '', inputAttrs: { type: 'guid' }, type: 'input' }) .then((r) => { if(r === null) { console.log('user cancelled'); } else { console.log('result', r); //storeid = r; } }) .catch(console.error); } let storeid = await getStoreId; console.log(storeid);La función prompt() en la biblioteca electron-prompt devuelve una promesa.
Una promesa solo puede estar en uno de tres estados:
Muy a menudo, debido a la naturaleza secuencial de Javascript, si intenta y console.log() una promesa antes de que se haya cumplido, recibirá un mensaje Promise { <pending> } .
Como ha envuelto su propia función getStoreId() alrededor de la función prompt() (que devuelve una promesa), no devolverá nada a menos que coloque una declaración de return delante de la función prompt() .
Como resultado, su función getStoreId() ahora devolverá la promesa.
Para manejar la promesa devuelta, debe seguirla con un método .then() . El método .then() se procesará cuando se resuelva la promesa (es decir, ya no está en el estado 'pendiente'), lo que significa que se cumplió o se 'rechazó'.
Dentro del método .then() puede extraer el resultado y procesarlo allí mismo o pasarlo a otras funciones suyas para obtener un código más claro, más limpio y más fácil de leer.
function getStoreId() { // Removed async keyword return prompt({ // Added return statement title: 'Get StoreId', label: 'Store ID:', value: '', inputAttrs: {type: 'guid'}, type: 'input' }) .then((result) => { if (result === null) { console.log('user cancelled'); } else { return result; // Return the result } }) // PS: Don't forget to handle any caught errors gracefully. .catch(console.error); } // Called only when your getStoreId() function has resolved. function useResult(result) { // Do something useful with your result. console.log(result); } // Calling "getStoreId()" without a ".then()" method will only // return a "Promise { <pending> }" message at this point in the code. // console.log(getStoreId()); // Let's show the prompt window. getStoreId() .then((result) => { useResult(result); })