fix(std/node): Stop callbacks being called twice when callback throws error (#8867)

This commit is contained in:
Liam Murphy 2021-01-26 23:34:40 +11:00 committed by GitHub
parent f9949a3170
commit 06bd692e5c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
46 changed files with 603 additions and 178 deletions

View file

@ -35,7 +35,7 @@ export function appendFile(
new Promise((resolve, reject) => {
if (typeof pathOrRid === "number") {
rid = pathOrRid;
Deno.write(rid, buffer).then(resolve).catch(reject);
Deno.write(rid, buffer).then(resolve, reject);
} else {
const mode: number | undefined = isFileOptions(options)
? options.mode
@ -53,15 +53,13 @@ export function appendFile(
rid = openedFileRid;
return Deno.write(openedFileRid, buffer);
})
.then(resolve)
.catch(reject);
.then(resolve, reject);
}
})
.then(() => {
closeRidIfNecessary(typeof pathOrRid === "string", rid);
callbackFn();
})
.catch((err) => {
callbackFn(null);
}, (err) => {
closeRidIfNecessary(typeof pathOrRid === "string", rid);
callbackFn(err);
});