1.2.35 • Published 3 years ago

syncfunction v1.2.35

Weekly downloads
46
License
MIT
Repository
github
Last release
3 years ago

SyncFunction

A mutex for synchronization using promises

Usage as in sequence lock

const {SyncFunction} = require('syncfunction') // or SyncQueue

const sync = SyncFunction()
sync(async()=>{
    await [...] // only one at a time
})
await sync(async()=>{
    await [...] // only one at a time
})

Usage as throat

A throat is an asyncronous function that executes work in the background without awaiting on the result. A throat guaruntees no more than n functions will be executed at a time.

const sync = ThroatFunction(2)
await sync(async()=>{
    await [...] // only 2 at a time
})
await sync(async()=>{
    await [...] // only 2 at a time
})
await sync(async()=>{
    await [...] // only 2 at a time
})

// wait until done
await sync(null)

Usage in a throat queue

A throat is an asyncronous function that executes work in the background with each function call returning an awaitable promise for the underlying call. A throat guaruntees no more than n functions will be executed at a time.

SyncLite usage

A lightweight version of SyncFunction (thats just an array at it's core) for when you need a large number of syncfunctions with minimal cost. Best restricted in use to when it will be able to immediately execute.

1.2.30

3 years ago

1.2.31

3 years ago

1.2.34

3 years ago

1.2.35

3 years ago

1.2.32

3 years ago

1.2.27

3 years ago

1.2.28

3 years ago

1.2.29

3 years ago

1.2.18

4 years ago

1.2.19

4 years ago

1.2.20

4 years ago

1.2.23

4 years ago

1.2.24

4 years ago

1.2.21

4 years ago

1.2.22

4 years ago

1.2.25

4 years ago

1.2.26

4 years ago

1.2.17

4 years ago

1.2.15

4 years ago

1.2.12

4 years ago

1.2.14

4 years ago

1.2.11

4 years ago

1.2.9

4 years ago

1.2.10

4 years ago

1.2.7

4 years ago

1.2.6

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.0

5 years ago

1.2.1

5 years ago

1.1.17

5 years ago

1.1.16

5 years ago

1.1.15

5 years ago

1.1.14

5 years ago

1.1.13

5 years ago

1.1.12

5 years ago

1.1.11

6 years ago

1.1.10

6 years ago

1.1.9

6 years ago

1.1.8

6 years ago

1.1.7

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago