Async node.send() without done(): Consequences?

@knolleary
In a blog post from 2019 you're discussing the (at that time) new interface definition for

this.on('input', function(msg, send, done) {})

With reference to contrib-nodes that do not implement the new interface, you stated:

But that’s no problem as the runtime is able to detect if a node is registering an ‘old’-style or ‘new’-style callback function and handle it accordingly.

Is this still valid today?
What's happening if a node nowadays does e.g.

this.on('input', function(msg, send, done) {
     setTimeout(function() {
        node.send(msg)
    }, 2000);
})

Is there any further harm than the fact that the Complete node will never be triggered?

Aside from meaning the Complete node won't work for it, I think the only other possible side-effect is no corresponding event is sent to the metrics logging api, so it is harder to trace messages through the flow.

But that is very much an edge case that won't concern 99% of users.

:+1:

Thank you for confirmation!

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.