Company logo
  • Jobs
  • Bootcamp
  • About Us
  • For professionals
    • Home
    • Jobs
    • Courses
    • Questions
    • Teachers
    • Bootcamp
  • For business
    • Home
    • Our process
    • Plans
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Calculator

0

185
Views
Why am I getting a warning to run fileHandle.close()?

I'm running a nodeJS program, which initially reads a db, and then writes to it, through several iterations of a for loop

(async ()=>{
const db = JSON.parse(await fs.readFile(DB_URL));
// ... more code
for(let i = 0; i < n /*n in the range of 10^3*/; i++){
  // ... manipulate the db
  // ... more code
  const dir = './FolderName';
  await fs.mkdir(dir, { recursive: true });
  await Promise.all(
    arr.map(async (arrItem, index) =>
      fs.writeFile(`${dir}/${index + 1}.png`, arrItem)
    )
  );
  await fs.writeFile(
    `${dir}/fileName.json`,
    JSON.stringify(db)
  );
}
})()

However, at random times, I'm getting this error.

(node:36680) Warning: Closing file descriptor 39 on garbage collection
(Use `node --trace-warnings ...` to show where the warning was created)
internal/process/warning:50
(node:36680) [DEP0137] DeprecationWarning: Closing a FileHandle object on garbage collection is deprecated. Please close FileHandle objects explicitly using FileHandle.prototype.close(). In the future, an error will be thrown if a file descriptor is closed during garbage collection.

I read from this answer, that fileHandle.close() is necessary only when I am opening a file using fileHandle.open(). Then what is going wrong? Why am I getting this error?

8 months ago ยท Juan Pablo Isaza
Answer question
Find remote jobs