title: How to fix null parameters when emitting to async listeners in node.js's event library?
body: <p>I have three js classes: my event object class that is being exported, one class that has the emit function, the other class is the listeners in the constructor. I have three listeners that are using the <code>setImmediate()</code> to make it async. The first listener is able to get the parameter correctly, but not the other two.</p>
  
  <p>I tried printing it out before the <code>setImmediate()</code> callback, and I was able to see the correct parameters.</p>
  
  <pre><code>bus.on('event', (input) =&gt; {
      setImmediate(() =&gt; {
           function(input); //parameter are not null here
      });
  }, this);
  bus.on('event', (input) =&gt; {
      //console.log(input) when printing the input here, I can see the values
      setImmediate(() =&gt; {
           function2(input); //null
      });
  }, this);
  bus.on('event', (input) =&gt; {
      setImmediate(() =&gt; {
           function3(input);
      });
  }, this);
  </code></pre>
  
  <p>I except the <code>input</code> to be <code>[e1, e2, e3</code>, but the actual output is <code>null</code></p>