DataLoader

by Artem

JavaScript

'use strict';

const createFoo = cb => {
	let t;
	const arr = [];
	return {
		run: (v) => {
			arr.push(v);
			if (t) {
				clearTimeout(t);
			}
			t = setTimeout(() => {
				cb(arr);
			});
		}
	};
}


const foo = createFoo(vars => {
	console.log('cb call ', vars);
});

foo.run(1);
foo.run(5);

for(let i = 0; i < 1000000; i++) {
	Math.random();
}

foo.run(199);