środa, 22 stycznia 2014

asyncMap - asynchroniczne iterowanie po tablicy

Funkcja pozwalająca na iterację po tablicy w sposób asynchroniczny. Można dzięki niej w genialnie prosty sposób wykonać np. kolejkę zadań, które wymagają wykonania asynchronicznych akcji np. zapytanie do innego serwera.

var asyncMap = function(arr, fn, endFn) {
 var i = 0,
  len = arr.length,
  res = [];

 (function callee() {
  fn(arr[i], i, function(singleRes) {
   res.push(singleRes);
   if (++i < len) {
    callee();
   } else {
    endFn(res);
   }
  }, arr);
 })();
};
prosty przykład użycia: http://jsfiddle.net/gkucmierz/QzLP5/

Brak komentarzy:

Prześlij komentarz