/*global require, setInterval, clearInterval, console*/
var deferred = require('deferred'),
async = function () {
var def = deferred(),
ct = 10,
intervalId = setInterval(function () {
if (!ct) {
clearInterval(intervalId);
def.resolve();
} else {
console.log('async emiting', ct);
def.promise.emit('progress', ct);
ct--;
}
}, 100);
return def.promise;
},
asyncGated = deferred.gate(async, 2);
var p = asyncGated(),
p2 = asyncGated(),
p3 = asyncGated();
p.on('progress', function (prg) { console.log("p ", prg); });
p2.on('progress', function (prg) { console.log("p2 ", prg); });
p3.on('progress', function (prg) { console.log("p3 ", prg); });
p and p2 executed immidatly and get the progress event ok, however p3 does not =\
Yury.