Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

255
Visualizações
La aplicación Electron se bloquea al almacenar datos en el sistema (la aplicación se cerró con el código 3221225477)

Estoy trabajando en una aplicación de electrones y estoy usando la siguiente implementación de clase para guardar y recuperar datos del disco del usuario. A veces esto funciona correctamente, sin embargo, en ocasiones el programa fallará y generará este error.

aplicación salió con el código 3221225477

No estoy muy seguro de qué está causando este problema. Entiendo que este código de error significa que se está produciendo una infracción de acceso, pero no estoy seguro de por qué. Potencialmente podría ser la implementación de la clase. Simplemente tomé la implementación de aquí https://medium.com/cameron-nokes/how-to-store-user-data-in-electron-3ba6bf66bc1e

También hay ocasiones en las que esto ocurre de forma aleatoria, por lo que puede que no sea la implementación de la Tienda.

 const electron = require('electron'); const path = require('path'); const fs = require('fs'); class Store { constructor(opts) { // Renderer process has to get `app` module via `remote`, whereas the main process can get it directly // app.getPath('userData') will return a string of the user's app data directory path. const userDataPath = (electron.app || electron.remote.app).getPath('userData'); // We'll use the `configName` property to set the file name and path.join to bring it all together as a string this.path = path.join(userDataPath, opts.configName + '.json'); this.data = parseDataFile(this.path, opts.defaults); } // This will just return the property on the `data` object get(key) { const val = this.data[key]; console.log('Get', key, val); return val; } // ...and this will set it set(key, val) { console.log('Set', key, val) this.data[key] = val; // Wait, I thought using the node.js' synchronous APIs was bad form? // We're not writing a server so there's not nearly the same IO demand on the process // Also if we used an async API and our app was quit before the asynchronous write had a chance to complete, // we might lose that data. Note that in a real app, we would try/catch this. fs.writeFileSync(this.path, JSON.stringify(this.data)); } } function parseDataFile(filePath, defaults) { // We'll try/catch it in case the file doesn't exist yet, which will be the case on the first application run. // `fs.readFileSync` will return a JSON string which we then parse into a Javascript object try { return JSON.parse(fs.readFileSync(filePath)); } catch(error) { // if there was some kind of error, return the passed in defaults instead. return defaults; } } // expose the class module.exports = Store;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Parece que he descubierto la razón de este problema. La siguiente publicación contiene un comentario que dice

Mantenga una referencia global del objeto de la ventana, si no lo hace, la ventana se cerrará automáticamente cuando el objeto de JavaScript se recopile como basura.

https://stackoverflow.com/a/59796326/7259551

Simplemente hacer que la instancia de BrowserWindow sea un valor global solucionó este problema.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda