Nomad Packaging Mechanism

    last-one-wins

    1.0.4 • Public • Published

    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

    Keywords

    none

    Install

    npm i last-one-wins

    DownloadsWeekly Downloads

    4,891

    Version

    1.0.4

    License

    MIT

    Last publish

    Collaborators

    • mafintosh