Use more async funcs in runtime/lib/api to reduce Promise creation

This commit is contained in:
Nick O'Leary
2020-11-30 16:58:05 +00:00
parent 5992ed1fab
commit a1f565f756
7 changed files with 419 additions and 484 deletions

View File

@@ -106,9 +106,8 @@ var api = module.exports = {
* @return {Promise<Object>} - resolves when complete
* @memberof @node-red/runtime_comms
*/
addConnection: function(opts) {
addConnection: async function(opts) {
connections.push(opts.client);
return Promise.resolve();
},
/**
@@ -119,14 +118,13 @@ var api = module.exports = {
* @return {Promise<Object>} - resolves when complete
* @memberof @node-red/runtime_comms
*/
removeConnection: function(opts) {
removeConnection: async function(opts) {
for (var i=0;i<connections.length;i++) {
if (connections[i] === opts.client) {
connections.splice(i,1);
break;
}
}
return Promise.resolve();
},
/**
@@ -140,14 +138,13 @@ var api = module.exports = {
* @return {Promise<Object>} - resolves when complete
* @memberof @node-red/runtime_comms
*/
subscribe: function(opts) {
subscribe: async function(opts) {
var re = new RegExp("^"+opts.topic.replace(/([\[\]\?\(\)\\\\$\^\*\.|])/g,"\\$1").replace(/\+/g,"[^/]+").replace(/\/#$/,"(\/.*)?")+"$");
for (var t in retained) {
if (re.test(t)) {
opts.client.send(t,retained[t]);
}
}
return Promise.resolve();
},
/**
@@ -159,5 +156,5 @@ var api = module.exports = {
* @return {Promise<Object>} - resolves when complete
* @memberof @node-red/runtime_comms
*/
unsubscribe: function(opts) {}
unsubscribe: async function(opts) {}
};