last-one-wins

WebJar for last-one-wins

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

last-one-wins
Last Version

Last Version

1.0.4
Release Date

Release Date

Type

Type

jar
Description

Description

last-one-wins
WebJar for last-one-wins
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/mafintosh/last-one-wins

Download last-one-wins

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/last-one-wins/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>last-one-wins</artifactId>
    <version>1.0.4</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/last-one-wins/
implementation 'org.webjars.npm:last-one-wins:1.0.4'
// https://jarcasting.com/artifacts/org.webjars.npm/last-one-wins/
implementation ("org.webjars.npm:last-one-wins:1.0.4")
'org.webjars.npm:last-one-wins:jar:1.0.4'
<dependency org="org.webjars.npm" name="last-one-wins" rev="1.0.4">
  <artifact name="last-one-wins" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='last-one-wins', version='1.0.4')
)
libraryDependencies += "org.webjars.npm" % "last-one-wins" % "1.0.4"
[org.webjars.npm/last-one-wins "1.0.4"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

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

Versions

Version
1.0.4