title: Do inject new instance Angular
body: <p>I have a simple factory and an injection token which I use in Angular dependency injection like this: </p>
  
  <pre><code>const TOKEN = new InjectionToken&lt;EventEmitter&lt;MyType&gt;&gt;("Create p");
  </code></pre>
  
  <p>and the factory: </p>
  
  <pre><code>const createEventEmitter = () =&gt; new EventEmitter&lt;MyType&gt;();
  </code></pre>
  
  <p>Now I provide it in my module like so:</p>
  
  <pre><code>providers: [
   {provide: TOKEN, useFactory: createEventEmitter}]
  </code></pre>
  
  <p>And I inject it in some constructor:</p>
  
  <pre><code>constructor(@Inject(TOKEN) emitter: EventEmitter&lt;MyType&gt;)
  </code></pre>
  
  <p>This works. However, I do get a singleton instance. </p>
  
  <p>What if I want to do this like the factory pattern, so that I get a new instance whenever I inject a reference? Is this possible? Kinda like Spring's <code>@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE).</code></p>
  
  <p>Bonus question: Is it possible to create an injector token that injects a new instance of a class with a generic type parameter? So one injector token that injects all EventEmitter. </p>