From 947271db93b8c9e40348466b1257164e65042011 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Sat, 8 Jul 2023 11:33:10 -0700 Subject: [PATCH 1/3] Update 4-error-fstat.js - Uses more undrestandable variable names - Uses for loop instead of forEach --- JavaScript/4-error-fstat.js | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/JavaScript/4-error-fstat.js b/JavaScript/4-error-fstat.js index 505397f..b9a2aa5 100644 --- a/JavaScript/4-error-fstat.js +++ b/JavaScript/4-error-fstat.js @@ -2,25 +2,24 @@ const fs = require('node:fs'); -const files = ['1-readFileSync.js', 'n-untitled.js', '3-async.js']; +const filenames = ['1-readFileSync.js', 'n-untitled.js', '3-async.js']; +const stats = new Array(filenames.length); -const stats = new Array(files.length); - -let rest = files.length; - -const printResult = () => { - console.dir({ stats }); -}; - -files.forEach((file, i) => { - console.dir({ file, i }); - fs.lstat(file, (err, stat) => { +let processedCount = 0; +for (const [index, filename] of filenames.entries()) { + console.dir({ filename, index }); + fs.lstat(filename, (err, stat) => { if (err) { - console.log(`File ${file} not found`); + console.log(`File ${filename} not found`); } else { - stats[i] = stat; + stats[index] = stat; + } + + processedCount += 1; + + const isLastProcessed = processedCount === filenames.length; + if (isLastProcessed) { + console.dir({ stats }); } - if (--rest) return; - printResult(); }); -}); +} From a339942d98540de8fc2d9ac572c62a39c0ccbe5f Mon Sep 17 00:00:00 2001 From: Konstantin Date: Thu, 13 Jul 2023 08:33:00 -0700 Subject: [PATCH 2/3] Update 4-error-fstat.js Use .map --- JavaScript/4-error-fstat.js | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/JavaScript/4-error-fstat.js b/JavaScript/4-error-fstat.js index b9a2aa5..b4f1d28 100644 --- a/JavaScript/4-error-fstat.js +++ b/JavaScript/4-error-fstat.js @@ -2,24 +2,6 @@ const fs = require('node:fs'); -const filenames = ['1-readFileSync.js', 'n-untitled.js', '3-async.js']; -const stats = new Array(filenames.length); - -let processedCount = 0; -for (const [index, filename] of filenames.entries()) { - console.dir({ filename, index }); - fs.lstat(filename, (err, stat) => { - if (err) { - console.log(`File ${filename} not found`); - } else { - stats[index] = stat; - } - - processedCount += 1; - - const isLastProcessed = processedCount === filenames.length; - if (isLastProcessed) { - console.dir({ stats }); - } - }); -} +const fileNames = ['1-readFileSync.js', 'n-untitled.js', '3-async.js']; +const promises = fileNames.map((fileName) => fs.lstat(fileName)); +Promise.allSettled(promises).then(console.dir); From 3768f6b1ab1a67920c77a634289832b409eb8340 Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Thu, 13 Jul 2023 18:45:30 +0300 Subject: [PATCH 3/3] Apply suggestions from code review --- JavaScript/4-error-fstat.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JavaScript/4-error-fstat.js b/JavaScript/4-error-fstat.js index b4f1d28..9263731 100644 --- a/JavaScript/4-error-fstat.js +++ b/JavaScript/4-error-fstat.js @@ -1,6 +1,6 @@ 'use strict'; -const fs = require('node:fs'); +const fs = require('node:fs').promises; const fileNames = ['1-readFileSync.js', 'n-untitled.js', '3-async.js']; const promises = fileNames.map((fileName) => fs.lstat(fileName));