From 06bd692e5c4a8f66960d3919e7087530b60c20dd Mon Sep 17 00:00:00 2001 From: Liam Murphy <43807659+Liamolucko@users.noreply.github.com> Date: Tue, 26 Jan 2021 23:34:40 +1100 Subject: fix(std/node): Stop callbacks being called twice when callback throws error (#8867) --- std/node/_fs/_fs_close.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'std/node/_fs/_fs_close.ts') 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 { -- cgit v1.2.3