diff options
author | Liam Murphy <43807659+Liamolucko@users.noreply.github.com> | 2021-01-26 23:34:40 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-26 13:34:40 +0100 |
commit | 06bd692e5c4a8f66960d3919e7087530b60c20dd (patch) | |
tree | 54da22655c71341c0e1e750d5197623e4fa0e286 /std/node/_fs/_fs_close.ts | |
parent | f9949a31707dcaa5a8786bfe4f84ed202be91607 (diff) |
fix(std/node): Stop callbacks being called twice when callback throws error (#8867)
Diffstat (limited to 'std/node/_fs/_fs_close.ts')
-rw-r--r-- | std/node/_fs/_fs_close.ts | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/std/node/_fs/_fs_close.ts b/std/node/_fs/_fs_close.ts index 8e9a1f620..721827421 100644 --- a/std/node/_fs/_fs_close.ts +++ b/std/node/_fs/_fs_close.ts @@ -2,14 +2,15 @@ import type { CallbackWithError } from "./_fs_common.ts"; export function close(fd: number, callback: CallbackWithError): void { - queueMicrotask(() => { + setTimeout(() => { + let error = null; try { Deno.close(fd); - callback(null); } catch (err) { - callback(err); + error = err; } - }); + callback(error); + }, 0); } export function closeSync(fd: number): void { |