diff --git a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js index 3e789be7f..0a7ed6dfa 100644 --- a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js +++ b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js @@ -295,7 +295,7 @@ module.exports = function(RED) { /* mute error - it simply isnt JSON, just leave payload as a string */ } } - } //else { + } //else { //leave as buffer //} } @@ -357,7 +357,7 @@ module.exports = function(RED) { return; } done(err); - }); + }); } else { done(); } @@ -718,9 +718,10 @@ module.exports = function(RED) { node.deregister = function(mqttNode, done, autoDisconnect) { delete node.users[mqttNode.id]; if (autoDisconnect && !node.closing && node.connected && Object.keys(node.users).length === 0) { - node.disconnect(); + node.disconnect(done); + } else { + done(); } - done(); }; node.canConnect = function() { return !node.connected && !node.connecting; @@ -854,7 +855,7 @@ module.exports = function(RED) { let waitEnd = (client, ms) => { return new Promise( (resolve, reject) => { node.closing = true; - if(!client) { + if(!client) { resolve(); } else { const t = setTimeout(() => { @@ -1033,7 +1034,7 @@ module.exports = function(RED) { /** * Add event handlers to the MQTT.js client and track them so that - * we do not remove any handlers that the MQTT client uses internally. + * we do not remove any handlers that the MQTT client uses internally. * Use {@link node._clientRemoveListeners `node._clientRemoveListeners`} to remove handlers * @param {string} event The name of the event * @param {function} handler The handler for this event @@ -1041,11 +1042,11 @@ module.exports = function(RED) { node._clientOn = function(event, handler) { node.clientListeners.push({event, handler}) node.client.on(event, handler) - } + } /** - * Remove event handlers from the MQTT.js client & only the events - * that we attached in {@link node._clientOn `node._clientOn`}. + * Remove event handlers from the MQTT.js client & only the events + * that we attached in {@link node._clientOn `node._clientOn`}. * * If `event` is omitted, then all events matching `handler` are removed * * If `handler` is omitted, then all events named `event` are removed * * If both parameters are omitted, then all events are removed