Estoy tratando de conectar una base de datos SQLite3 con un componente de reacción usando electron contextBridge y sigo devolviendo una promise {<pending>} en mi componente de reacción de interfaz. He rapeado mi llamada SQL en una nueva Promesa.
Quotes_mgr.js
exports.getActiveQuoteData = () => { return new Promise(( resolve , reject ) => { db.serialize(() => { db.all( "SELECT * FROM Quotes ", (err, rows) => { if (err) reject(err); resolve(rows); } );}) }) };Esta función se llama con electrones ipcMain.handle en mi archivo main.js.
principal.js
ipcMain.handle("get_active_quotes", (event) => { return Quotes_mgr.getActiveQuoteData(); //return Employee_mgr.getEmployeeid(args); });a través de la API contextBridge en el archivo preload.js.
precargar.js
contextBridge.exposeInMainWorld("api", { on(eventName, callback) { ipcRenderer.on(eventName, callback); }, getActiveQuotes: () => ipcRenderer.invoke("get_active_quotes"), });Luego devuelve los resultados de SQL a mi componente React.
índice.jsx
const getInStore_List = async () => { return await window.api.getActiveQuotes(); } const InStore_List = getInStore_List() InStore_List devuelve una promise {<pending>} que contiene los resultados de SQL, pero necesito que devuelva los resultados de SQL para poder usarlos en mi componente React. Soy nuevo en las funciones Promises y Async y creo que el problema está en mi nueva implantación de Promise, pero no he podido averiguar por qué esto no funciona. Cualquier ayuda sería apreciada.