diff options
author | Ali Hasani <a.hassssani@gmail.com> | 2020-04-20 13:59:37 +0430 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-20 11:29:37 +0200 |
commit | 437e35ca52227337588148a6896040d3fc3f2d54 (patch) | |
tree | c1be28b0ceae5fd4276be087afc686b78eab5629 /std/node/_fs/_fs_dir.ts | |
parent | c1ec042a0011eeba2480b892a335ca7804c59180 (diff) |
Add no-async-promise-executor lint rule (#4809)
Diffstat (limited to 'std/node/_fs/_fs_dir.ts')
-rw-r--r-- | std/node/_fs/_fs_dir.ts | 37 |
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); + }); }); } |