oboe.js-demo
Version:
A website for Oboe.js
25 lines (19 loc) • 562 B
JavaScript
module.exports = function barrier(whenDone) {
var requiredCallbacks = 0,
doneCallbacks = 0,
startTime = Date.now();
var instance = {
add:function(fn){
requiredCallbacks++;
return function(){
fn.apply(this,arguments);
doneCallbacks++;
if( requiredCallbacks === doneCallbacks ) {
instance.duration = Date.now() - startTime;
whenDone();
}
}
}
};
return instance;
};