From f4f664a4a20a1f98fe1be72586a7b5b0c05dd68d Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Wed, 27 Feb 2019 20:56:58 +0000 Subject: [PATCH] Ensure flows wait for all nodes to close before restarting Fixes #2067 --- .../node_modules/@node-red/runtime/lib/nodes/flows/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/node_modules/@node-red/runtime/lib/nodes/flows/index.js b/packages/node_modules/@node-red/runtime/lib/nodes/flows/index.js index 4cce74e83..7963ddfc4 100644 --- a/packages/node_modules/@node-red/runtime/lib/nodes/flows/index.js +++ b/packages/node_modules/@node-red/runtime/lib/nodes/flows/index.js @@ -388,14 +388,14 @@ function stop(type,diff,muteLog) { if (activeFlows.hasOwnProperty(id)) { var flowStateChanged = diff && (diff.added.indexOf(id) !== -1 || diff.removed.indexOf(id) !== -1); log.debug("red/nodes/flows.stop : stopping flow : "+id); - promises = promises.concat(activeFlows[id].stop(flowStateChanged?null:stopList,removedList)); + promises.push(activeFlows[id].stop(flowStateChanged?null:stopList,removedList)); if (type === "full" || flowStateChanged || diff.removed.indexOf(id)!==-1) { delete activeFlows[id]; } } } - return Promise.resolve(promises).then(function() { + return Promise.all(promises).then(function() { for (id in activeNodesToFlow) { if (activeNodesToFlow.hasOwnProperty(id)) { if (!activeFlows[activeNodesToFlow[id]]) {