From 77bd7541ca50da9f3615cfc3bc77808d3f1a94f9 Mon Sep 17 00:00:00 2001 From: Kunihiko Toumura Date: Fri, 29 Nov 2019 16:12:06 +0900 Subject: [PATCH] new-style callback function (template node) --- .../nodes/core/function/80-template.js | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/function/80-template.js b/packages/node_modules/@node-red/nodes/core/function/80-template.js index 5700e2f55..d4c27cfd0 100644 --- a/packages/node_modules/@node-red/nodes/core/function/80-template.js +++ b/packages/node_modules/@node-red/nodes/core/function/80-template.js @@ -107,7 +107,7 @@ module.exports = function(RED) { var node = this; - function output(msg,value) { + function output(msg,value,send,done) { /* istanbul ignore else */ if (node.outputFormat === "json") { value = JSON.parse(value); @@ -119,22 +119,24 @@ module.exports = function(RED) { if (node.fieldType === 'msg') { RED.util.setMessageProperty(msg, node.field, value); - node.send(msg); + send(msg); + done(); } else if ((node.fieldType === 'flow') || (node.fieldType === 'global')) { var context = RED.util.parseContextStore(node.field); var target = node.context()[node.fieldType]; target.set(context.key, value, context.store, function (err) { if (err) { - node.error(err, msg); + done(err); } else { - node.send(msg); + send(msg); + done(); } }); } } - node.on("input", function(msg) { + node.on("input", function(msg, send, done) { try { /*** @@ -179,16 +181,16 @@ module.exports = function(RED) { Promise.all(promises).then(function() { var value = mustache.render(template, new NodeContext(msg, node.context(), null, is_json, resolvedTokens)); - output(msg, value); + output(msg, value, send, done); }).catch(function (err) { - node.error(err.message,msg); + done(err.message); }); } else { - output(msg, template); + output(msg, template, send, done); } } catch(err) { - node.error(err.message, msg); + done(err.message); } }); }