summaryrefslogtreecommitdiff
path: root/std/node/_fs/_fs_dir.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/node/_fs/_fs_dir.ts')
-rw-r--r--std/node/_fs/_fs_dir.ts37
1 files changed, 19 insertions, 18 deletions
diff --git a/std/node/_fs/_fs_dir.ts b/std/node/_fs/_fs_dir.ts
index 144014cce..543cf14ee 100644
--- a/std/node/_fs/_fs_dir.ts
+++ b/std/node/_fs/_fs_dir.ts
@@ -1,4 +1,5 @@
import Dirent from "./_fs_dirent.ts";
+import { assert } from "../../testing/asserts.ts";
export default class Dir {
private dirPath: string | Uint8Array;
@@ -17,25 +18,25 @@ export default class Dir {
}
read(callback?: Function): Promise<Dirent | null> {
- return new Promise(async (resolve, reject) => {
- try {
- if (!this.asyncIterator) {
- this.asyncIterator = Deno.readdir(this.path)[Symbol.asyncIterator]();
- }
-
- const result: Dirent | null = await (await this.asyncIterator?.next())
- .value;
- resolve(result ? result : null);
-
- if (callback) {
- callback(null, result ? result : null);
- }
- } catch (err) {
- if (callback) {
- callback(err, null);
- }
- reject(err);
+ return new Promise((resolve, reject) => {
+ if (!this.asyncIterator) {
+ this.asyncIterator = Deno.readdir(this.path)[Symbol.asyncIterator]();
}
+ assert(this.asyncIterator);
+ this.asyncIterator
+ .next()
+ .then(({ value }) => {
+ resolve(value ? value : null);
+ if (callback) {
+ callback(null, value ? value : null);
+ }
+ })
+ .catch((err) => {
+ if (callback) {
+ callback(err, null);
+ }
+ reject(err);
+ });
});
}