Skip to content

Instantly share code, notes, and snippets.

@soarez
Created July 21, 2015 22:04

Revisions

  1. soarez created this gist Jul 21, 2015.
    39 changes: 39 additions & 0 deletions event-loop-play.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,39 @@
    console.log('experiment')

    var intervalTime = 1000;
    setInterval(runSomething, intervalTime);

    var lastTime = Date.now();;
    function runSomething() {
    var now = Date.now();
    var elapsed = now - lastTime;
    lastTime = now;
    var lag = elapsed - intervalTime;
    console.log('Running something. Lag:', lag);
    }


    var count = 2000;
    var limit = 50;
    var scheduled, done;
    proceed();
    function proceed() {
    scheduled = 0;
    done = 0;
    while (count --> 0 && ++scheduled <= limit)
    setTimeout(somethingElse(count), 500);
    }

    function somethingElse(count) {
    return function() {
    if (count % 100 === 0)
    console.log(2000 - count);

    var start = Date.now();
    while (Date.now() - start < 4);

    done++;
    if (done === limit)
    proceed();
    }
    }