title: JS setInterval is being called multiple times
body: <p>I'm having following code
  </p>
  
  <pre><code>if (input.isValidLink()) {
    store()
      .then(db =&gt; db.update(message.from, text, json))
      .then(value =&gt; value.selectAllFromDB())
      .then(users =&gt; makeRequest(users));
  }
  </code></pre>
  
  <p>Amd makeRequest function
  </p>
  
  <pre><code>makeRequest(user) {
    setInterval(() =&gt; {
      users.forEach(user =&gt; {
        httpRequest(user.json);
      });
    }, 10000);
  }
  </code></pre>
  
  <p>What I'm trying to do, is <code>selectAllFromDB function</code> returns array of users from db, and it passed as argument to <code>makeRequest function</code>, which is looping thru each user, send request to receive <code>json</code> data and do it each 10 seconds, so it will not miss any changes. Each time when any user send the link, it should also start watching for this link. Problem is that on each received link it calls <code>makeRequest function</code> which creates another interval and if two links were received, I'm having two intervals. First looping thru this array </p>
  
  <pre class="lang-json prettyprint-override"><code>[{
    id: 1234,
    json: 'https://helloworld.com.json',
  }]
  </code></pre>
  
  <p>And second thru this
  </p>
  
  <pre><code>[{
    id: 1234,
    json: 'https://helloworld.com.json',
  }, {
    id: 5678,
    json: 'https://anotherlink.com.json',
  }]
  </code></pre>
  
  <p>Is there any way this can be fixed so only one interval is going to be created?</p>