1.0.1 • Published 2 years ago

@livechat/promise-utils v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Functions

promiseRetry(promiseFactory, options) ⇒

Retries promise factory until it resolves or maximum retries count is reached

Kind: global function
Returns: promise that resolves when promiseFactory resolves or rejects when maximum retries count is reached

ParamDescription
promiseFactoryfunction that returns a promise
optionsoptions object
options.retriesCountmaximum retries count, default: Infinity
options.minTimeminimum time between retries, default: 100
options.maxTimemaximum time between retries, default: 10000

Example

const promise = promiseRetry(() => fetch('https://example.com'), {
  retriesCount: 3,
})
promise
  .then(response => console.log(response))
  .catch(error => console.log(error))

promiseTry(anyFunction) ⇒

promiseTry allows us to move success / error handling to be promise based so we will handle both synchronous and asynchronous execution failures and success properly.

Kind: global function
Returns: promise that resolves to the return value of the function

ParamDescription
anyFunctionfunction to be called

Example

const promise = promiseTry(() => 1)
promise.then(value => console.log(value)) // 1

promiseQueue() ⇒

promiseQueue is a function that returns an object with two methods: add and flush. add takes a function that will be added to the queue and returns a promise that resolves to the function's return value when it is called and executed in order of addition to the queue. flush takes an error and rejects all pending promises with that error.

Kind: global function
Returns: object with add and flush methods
Example

const queue = promiseQueue()
const promise1 = queue.add(() => 1)
const promise2 = queue.add(() => 2)
promise1.then(value => console.log(value)) // 1
promise2.then(value => console.log(value)) // 2

promiseDeferred() ⇒

Creates a deferred object that can be resolved or rejected later.

Kind: global function
Returns: A deferred object with a promise and resolve and reject functions.
Example

const def = promiseDeferred()
const promise = def.promise
def.resolve(1)
return promise.then(res => console.log(res)) // 1

promiseTimeoutController() ⇒

promiseTimeoutController is a function that returns an object with two properties: racePromiseWithTimeout and signal. The main function, racePromiseWithTimeout, takes a promise and a timeout duration as parameters. It returns a promise that races the original promise with a timeout. If the original promise resolves or rejects before the timeout, the timeout is aborted. If the timeout occurs before the original promise completes, the request is aborted. The function also exposes the signal from the requestAbortController for external use.

Kind: global function
Returns: object with racePromiseWithTimeout and signal properties
Example

const { racePromiseWithTimeout, signal } = promiseTimeoutController()
const promise = fetch('https://example.com', { signal })
const result = await racePromiseWithTimeout(promise, 1000)