1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Split node - fix complete to send msg for k/v object

and update info to try to clarify.
This commit is contained in:
Dave Conway-Jones 2018-09-04 22:54:28 +01:00
parent 7703875740
commit 72b8dbb45b
No known key found for this signature in database
GPG Key ID: 9E7F9C73F5168CD4
2 changed files with 7 additions and 15 deletions

View File

@ -295,7 +295,8 @@
For object outputs, once this count has been reached, the node can be configured to send a message for each subsequent message For object outputs, once this count has been reached, the node can be configured to send a message for each subsequent message
received.</p> received.</p>
<p>A <i>timeout</i> can be set to trigger sending the new message using whatever has been received so far.</p> <p>A <i>timeout</i> can be set to trigger sending the new message using whatever has been received so far.</p>
<p>If a message is received with the <b>msg.complete</b> property set, the output message is sent.</p> <p>If a message is received with the <b>msg.complete</b> property set, the output message is finalised and sent.
This resets any part counts.</p>
<h4>Reduce Sequence mode</h4> <h4>Reduce Sequence mode</h4>
<p>When configured to join in reduce mode, an expression is applied to each <p>When configured to join in reduce mode, an expression is applied to each

View File

@ -586,14 +586,18 @@ module.exports = function(RED) {
} }
else { else {
if (msg.hasOwnProperty('complete')) { if (msg.hasOwnProperty('complete')) {
if (inflight[partId]) {
inflight[partId].msg.complete = msg.complete;
completeSend(partId); completeSend(partId);
} }
}
else { else {
node.warn("Message missing key property 'msg."+node.key+"' - cannot add to object") node.warn("Message missing key property 'msg."+node.key+"' - cannot add to object")
} }
} }
return; return;
} }
if (!inflight.hasOwnProperty(partId)) { if (!inflight.hasOwnProperty(partId)) {
if (payloadType === 'object' || payloadType === 'merged') { if (payloadType === 'object' || payloadType === 'merged') {
inflight[partId] = { inflight[partId] = {
@ -604,19 +608,6 @@ module.exports = function(RED) {
msg:RED.util.cloneMessage(msg) msg:RED.util.cloneMessage(msg)
}; };
} }
else if (node.accumulate === true) {
if (msg.hasOwnProperty("reset")) { delete inflight[partId]; }
inflight[partId] = inflight[partId] || {
currentCount:0,
payload:{},
targetCount:targetCount,
type:payloadType,
msg:RED.util.cloneMessage(msg)
}
if (payloadType === 'string' || payloadType === 'array' || payloadType === 'buffer') {
inflight[partId].payload = [];
}
}
else { else {
inflight[partId] = { inflight[partId] = {
currentCount:0, currentCount:0,