Вы можете попробовать что-то вроде этого:
var status = {
'message1': false,
'message2': false,
'message3': false,
'message4': false
};
var my_test_queue = new Queue();
function caught_one(arg)
{
status.arg = true;
// if status.message1, message2, message3 and message4 == true,
my_test_queue.emit('done');
}
queue1.on('message1', function(err, message) {
test.ok(something);
caught_one('message1');
};
queue2.on('message2', function(err, message) {
test.ok(something);
caught_one('message2');
};
queue3.on('message3', function(err, message) {
test.ok(something);
caught_one('message3');
};
queue4.on('message4', function(err, message) {
test.ok(something);
caught_one('message4');
};
my_test_queue.on('done', function() {
test.done();
});
По сути, я отслеживаю события, которые сработали, и когда я нахожу все из них, генерирую свои собственные, поэтому test.done () может быть вызван для этого события.