atomic
v1.0.0
Published
makes a function atomic with timeout and abort signal
Downloads
1,591
Maintainers
Readme
Install
$ npm i atomic
API
Table of Contents
atomic
Makes a function atomic.
const fn = atomic(signal => async () => {
// some long async operation
// if we've been aborted during the long
// async process above, we wouldn't want
// to continue so lets return here
if (signal.aborted) return
// do things here if we didn't abort
}, 500) // timeout at 500ms (don't pass anything for no timeout)
fn()
fn()
fn()
await fn() // this will run after the above have settled
Parameters
signalClosure
function (signal: AbortSignal): function (...args: Array<any>): Promise<any> A function that receives the signal object from an AbortController and returns the function to become atomic.maxTimeMs
number? Time in milliseconds to timeout the operation. Will also signal abort.
Returns any An atomic function
Contribute
All contributions are welcome!
License
MIT © 2022 stagas