title: ReactJS server-side rendering, setTimeout issue
body: <p>On my ReactJS App I used <code>setTimeout</code> to defer some Redux action:</p>
  
  <pre><code>export const doLockSide = (lockObject) =&gt; (dispatch) =&gt; {
    const timerId = setTimeout(() =&gt; {
      dispatch({
        type: CONSTANTS.TOPICS_SET_CURRENT_TOPIC_LOCKED_SIDE,
        payload: { id: lockObject.topicId, side: lockObject.side, locked: false }
      });
    }, lockObject.unlockTimeout);
  
    dispatch({
      type: CONSTANTS.TOPICS_SET_CURRENT_TOPIC_LOCKED_SIDE,
      payload: { id: lockObject.topicId, side: lockObject.side, timerId, locked: true }
    });
  };
  </code></pre>
  
  <p>The <code>lockObject</code> comes from the server, so this code is a part of async Redux actions chain. It worked fine, but when I tried to make this functionality to be a part of server side rendering process, it broke the App. I understand the difference between Browser and NodeJS runtime environments and the difference between its implementations of <code>setTimeout</code>. Specifically my <code>timerId</code> could not be processed by Node due to it's an object, while my Redux reducer treats it as an integer. But the main problem is that during server side rendering Node fires <code>setTimeout</code> callback on the server side...</p>
  
  <p><strong>The question</strong>. I have some redux-based proccess that should be deferred in some cases including the App start. How can I do it satisfying the requirement of server-side rendering?</p>