guarantee asynchronous execution for batch reads and write queues

This commit is contained in:
ansuz
2019-12-05 13:35:26 -05:00
parent fb50fe09ce
commit 1da662687f
2 changed files with 13 additions and 8 deletions

View File

@@ -4,7 +4,7 @@ q(id, function (next) {
// whatever you need to do....
// when you're done
next();
next(); // guaranteed to be asynchronous :D
});
*/
@@ -16,9 +16,11 @@ module.exports = function () {
var map = {};
var next = function (id) {
if (map[id] && map[id].length === 0) { return void delete map[id]; }
var task = map[id].shift();
task(fix1(next, id));
setTimeout(function () {
if (map[id] && map[id].length === 0) { return void delete map[id]; }
var task = map[id].shift();
task(fix1(next, id));
});
};
return function (id, task) {