Namespace: race

async.race

Source:

Examples

// array
var called = 0;
var tasks = [
  function(done) {
    setTimeout(function() {
      called++;
      done(null, '1');
    }, 30);
  },
  function(done) {
    setTimeout(function() {
      called++;
      done(null, '2');
    }, 20);
  },
  function(done) {
    setTimeout(function() {
      called++;
      done(null, '3');
    }, 10);
  }
];
async.race(tasks, function(err, res) {
  console.log(res); // '3'
  console.log(called); // 1
  setTimeout(function() {
    console.log(called); // 3
  }, 50);
});
// object
var called = 0;
var tasks = {
  'test1': function(done) {
    setTimeout(function() {
      called++;
      done(null, '1');
    }, 30);
  },
  'test2': function(done) {
    setTimeout(function() {
      called++;
      done(null, '2');
    }, 20);
  },
  'test3': function(done) {
    setTimeout(function() {
      called++;
      done(null, '3');
    }, 10);
  }
};
async.race(tasks, function(err, res) {
  console.log(res); // '3'
  console.log(called); // 1
  setTimeout(function() {
    console.log(called); // 3
    done();
  }, 50);
});