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

246
Visualizações
TypeError: resolver no es una función

Estoy tratando de escribir una función que lea un archivo y, dependiendo del éxito o el fracaso en la lectura, llamará a la función de resolución o rechazo. A continuación se muestra el código que he escrito.

 let fs = require('fs'); const FILE_NAME = './assets/pies.json'; let pieRepo = { get: function(resolve, reject) { fs.readFile(FILE_NAME, function(err, data) { if(err) { reject(err); } else { resolve(JSON.parse(data)); } }); } }; module.exports = pieRepo;

Sin embargo, cuando ejecuto "npm start", arroja el siguiente error

 /workingdirectory/repos/pieRepo.js:12 resolve(JSON.parse(data)); ^ TypeError: resolve is not a function at /workingdirectory/repos/pieRepo.js:12:17 at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)

Estoy usando la versión 16.11.0 de node.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

El problema que enfrenta es la forma en que intenta resolver la promesa. Las funciones de resolución y rechazo están disponibles en Promise

 let fs = require("fs"); const FILE_NAME = "YOUR PATH TO FILE"; let pieRepo = { get: () => { return new Promise((resolve, reject) => { fs.readFile(FILE_NAME, (err, data) => { if (err) { return reject(err); } resolve(JSON.parse(data)); }); }); }, }; module.exports = pieRepo;

Puede leer más sobre Promise

about 4 years ago · Juan Pablo Isaza Relatório

0

Resolver y rechazar son funciones disponibles en las promesas.

Reemplace su código con esto:

 let fs = require('fs'); const FILE_NAME = './assets/pies.json'; let pieRepo = { get: () => { return new Promise((resolve, reject) => { fs.readFile(FILE_NAME, (err, data) => { if (err) { return reject(err); } resolve(JSON.parse(data)); }); }); }, }; module.exports = pieRepo;

Ahora, puede esperar la función de get .

Sin embargo, si este fuera mi proyecto, el código se vería así:

 let fs = require('fs/promises'); const FILE_NAME = './assets/pies.json'; let pieRepo = { get: async () => { try { const data = await fs.readFile(FILE_NAME); return data; } catch (err) { throw new Error(err.message); } }, }; module.exports = pieRepo;

Si desea prometer fs.readFile , puede hacerlo, pero las versiones prometidas de funciones fs están disponibles a través de fs/promises .

about 4 years ago · Juan Pablo Isaza Relatório

0

Tienes que usar Promise, aquí hay un ejemplo muy simple:

 test() { return new Promise((resolve, reject) => { if (1 === 1) { resolve(true) } else { reject(false) } }) }
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