Speed up user listing by performing parallel requests

This commit is contained in:
Johannes Zellner
2019-01-16 14:02:08 +01:00
parent 4ead9cbf6a
commit adf3172ebb
4 changed files with 44 additions and 14 deletions
+26
View File
@@ -18,6 +18,32 @@ if (search.accessToken) {
}
// poor man's async in the global namespace
function asyncForEachParallel(items, handler, callback) {
var alreadyDone = 0;
var errored = false;
if (items.length === 0) return callback();
function done(error) {
// do nothing if already called back due to error
if (errored) return;
if (error) {
errored = true;
return callback(error);
}
++alreadyDone;
// we are done
if (alreadyDone === items.length) callback();
}
for (var i = 0; i < items.length; ++i) {
handler(items[i], done);
}
}
function asyncForEach(items, handler, callback) {
var cur = 0;