Skip to content

Instantly share code, notes, and snippets.

@gmp
Last active December 25, 2015 05:49
Show Gist options
  • Save gmp/6927324 to your computer and use it in GitHub Desktop.
Save gmp/6927324 to your computer and use it in GitHub Desktop.
Test case for queue-flow named queues sharing scope
var q = require('queue-flow');
function scanAll (data, callback) {
console.log('scanAll with data:', data);
var counter = 0;
var items = [];
var end = q();
end
.each(function() {
oncedCallback(items);
console.log('end');
});
var recurse = q();
recurse
.each(function(data) {
data.Flag++;
items = items.concat(data.Items);
console.log('recurse - each items:', items);
return data;
})
.branch(function(data) {
return data.Flag > 1 ? end : recurse;
});
q([data]).branch(recurse);
}
scanAll({
Items: ['X', 'firstScan-1', 'firstScan-2', 'firstScan-3'],
Flag: 0
}, function(result) {
console.log('first result:', result);
});
scanAll({
Items: ['secondScan-1', 'secondScan-2', 'secondScan-3'],
Flag: 1
}, function(result) {
console.log('second result:', result);
});
@gmp
Copy link
Author

gmp commented Oct 10, 2013

Logged output:

scanAll with data: { Items: [ 'X', 'firstScan-1', 'firstScan-2', 'firstScan-3' ] }
scanAll with data: { Items: [ 'secondScan-1', 'secondScan-2', 'secondScan-3' ] }
recurse - each items: [ 'X', 'firstScan-1', 'firstScan-2', 'firstScan-3' ]
recurse - each items: [ 'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3',
  'secondScan-1',
  'secondScan-2',
  'secondScan-3' ]
recurse - each items: [ 'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3',
  'secondScan-1',
  'secondScan-2',
  'secondScan-3',
  'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3' ]
end
second result: [ 'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3',
  'secondScan-1',
  'secondScan-2',
  'secondScan-3',
  'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3' ]
end
second result: [ 'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3',
  'secondScan-1',
  'secondScan-2',
  'secondScan-3',
  'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3' ]

@gmp
Copy link
Author

gmp commented Oct 11, 2013

Updated output (appears to be working):

scanAll called with data: { Items: [ 'X', 'firstScan-1', 'firstScan-2', 'firstScan-3' ],
  Flag: 0 }
scanAll called with data: { Items: [ 'secondScan-1', 'secondScan-2', 'secondScan-3' ],
  Flag: 1 }
recurse - each items: [ 'X', 'firstScan-1', 'firstScan-2', 'firstScan-3' ]
recurse - each items: [ 'secondScan-1', 'secondScan-2', 'secondScan-3' ]
recurse - each items: [ 'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3',
  'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3' ]
firstScanCB: [ 'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3',
  'X',
  'firstScan-1',
  'firstScan-2',
  'firstScan-3' ]
end
secondScanCB: [ 'secondScan-1', 'secondScan-2', 'secondScan-3' ]
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment