mirror of https://github.com/node-red/node-red.git
Merge pull request #5461 from Dennis-SEG/fix/node-close-double-resolve
fix: prevent double resolve in node close callbackpull/5467/head^2
commit
6b69500a5c
|
|
@ -322,6 +322,7 @@ Node.prototype.close = function(removed) {
|
|||
// The callback takes a 'done' callback and (maybe) the removed flag
|
||||
promises.push(
|
||||
new Promise((resolve) => {
|
||||
var resolved = false;
|
||||
try {
|
||||
var args = [];
|
||||
if (callback.length === 2) {
|
||||
|
|
@ -329,13 +330,19 @@ Node.prototype.close = function(removed) {
|
|||
args.push(!!removed);
|
||||
}
|
||||
args.push(() => {
|
||||
resolve();
|
||||
if (!resolved) {
|
||||
resolved = true;
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
callback.apply(node, args);
|
||||
} catch(err) {
|
||||
// TODO: error thrown in node async close callback
|
||||
// We've never logged this properly.
|
||||
resolve();
|
||||
if (!resolved) {
|
||||
resolved = true;
|
||||
resolve();
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue