continuable-race

0.0.3 • Public • Published

continuable-race

Race continuables against each other. Returns a new continuable that results in the value of whatever continuable gets a value or error first.

Like Promise.race() for continuables

race(...continuables)

var race = require('continuable-race')
race(cont1, cont2)(function (err, val) {
  // Use the continuable that finished first
})

...continuables is either variable length arguments or an array of continuables. cont1, cont2... or [cont1, cont2...]

Example

var fs = require('fs')
var race = require('continuable-race')

var timeout = function (cb) {
    setTimeout(function () {
        cb(new Error('Timeout'))
    }, 100)
}

var file = function (cb) {
  fs.readFile(__dirname + '/race.js', cb)
}

race(file, timeout)(function (err, val) {
    if (err) return console.error(err)

    // Will only happend if the file were read in under 100 ms
    console.log(val.toString())
})

Will be far more useful for callbacks to network resonses or any other resonse with unreliable resonse time, but it's an easy example.

Readme

Keywords

none

Package Sidebar

Install

npm i continuable-race

Weekly Downloads

1

Version

0.0.3

License

MIT

Last publish

Collaborators

  • pirfalt