last-one-wins
Make sure the last sync call to an async function is executed after all previous ones have finished
Last updated 9 years ago by mafintosh .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install last-one-wins 
SYNC missed versions from official npm registry.

last-one-wins

Make sure the last sync call to an async function is executed after all previous ones have finished

npm install last-one-wins

build status

Usage

var low = require('last-one-wins')

var pick = low(function (num, cb) {
  setTimeout(function () {
    console.log('picked', num)
    cb()
  }, Math.floor(Math.random() * 100))
})

pick(1)
pick(2)
pick(3)
pick(4)
pick(5) // this one will always win since its called the last

Calling the above will print out

picked 1
picked 5

API

var fn = low(asyncWorker)

Wrap a async function to make sure that the last sync call to that function is executed after any previous calls. Note that not all calls are executed - only the last one is guaranteed to be executed.

fn and asyncWorker should have the signature (value, cb)

Use with leveldb

This module is useful if you want sync a value to a leveldb and want to make sure the latest version of that value is the one written. For example

var update = low(function (val, cb) {
  db.put('my-key', val, cb)
})

update('a')
update('b')
update('c')

Is guaranteed to always write c to the key my-key.

License

MIT

Current Tags

  • 1.0.4                                ...           latest (9 years ago)

5 Versions

  • 1.0.4                                ...           9 years ago
  • 1.0.3                                ...           9 years ago
  • 1.0.2                                ...           9 years ago
  • 1.0.1                                ...           9 years ago
  • 1.0.0                                ...           9 years ago
Maintainers (1)
Downloads
Today 1
This Week 1
This Month 1
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (2)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |