Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Thanks @James, I got clue from what you edited for length. As such the calls are async ajax requests. So the idea is in creating M number of async calls <strong>upfront</strong>. Then they will continue those many as and when each one is complete.</p> <p>I did experiment with nodejs and following initiateChain works as intended</p> <pre><code>var calls = []; function initiateChain() { var i = 0; var maxSteams = 2; var tasks = arguments; var callback = function () { i += 1; if (i &lt; tasks.length) { tasks[i](callback); //block should call callback when done otherwise loop stops } } if (tasks.length) { i = ((tasks.length &gt; maxSteams) ? maxSteams : tasks.length) - 1; for (var j = 0; j &lt; maxSteams; j+=1) { if (j &lt; tasks.length) { tasks[j](callback); //initiate first set } else { break; } } } } //test methods for(var k = 0; k &lt; 8; k+=1 ) { calls[k] = (function (message, index) { return function (callback) { var ts = new Date().getTime(); console.log(message + " started - " + ts); setTimeout(function() { ts = new Date().getTime(); console.log(message + " completed - " + ts); callback(); }, index * 1000); }; })("call" + (k+1), (k+1)) } initiateChain(calls[0], calls[1], calls[2], calls[3], calls[4], calls[5], calls[6], calls[7]); </code></pre> <p>In my experiment I got following results</p> <pre><code>call1 started - 1360580377905 call2 started - 1360580377926 call1 completed - 1360580378937 call3 started - 1360580378937 call2 completed - 1360580379937 call4 started - 1360580379937 call3 completed - 1360580381945 call5 started - 1360580381945 call4 completed - 1360580383946 call6 started - 1360580383946 call5 completed - 1360580386959 call7 started - 1360580386959 call6 completed - 1360580389950 call8 started - 1360580389950 call7 completed - 1360580393972 call8 completed - 1360580397959 </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload