atomic
makes a function atomic with timeout and abort signal
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