awesome-only-resolves-last-promise
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

awesome-only-resolves-last-promise

NPM Build Status

Install

npm install --save awesome-only-resolves-last-promise
// or
yarn add awesome-only-resolves-last-promise

Features

  • Wraps an existing async function
  • When calling the wrapped function multiple times consecutively, only the last returned promise will resolve and formerly returned promises will be cancelled (they won't resolve nor reject)

Usage

import { onlyResolvesLast } from 'awesome-only-resolves-last-promise';
 
const asyncFunction = async (arg: number, arg2: string) => {
  await delay(100);
  return `val ${arg} ${arg2}`;
};
 
const wrappedAsyncFunction = onlyResolvesLast(asyncFunction);
 
const promise1 = wrappedAsyncFunction(1, '1');
const promise2 = wrappedAsyncFunction(2, '2');
const promise3 = wrappedAsyncFunction(3, '3');
 
// promise1 and promise2 will never resolve/reject
// promise3 will resolve in 100ms

Useful as an implementation detail of awesome-debounce-promise.

License

MIT © slorber

Hire a freelance expert

Looking for a React/ReactNative freelance expert with more than 5 years production experience? Contact me from my website or with Twitter.

Readme

Keywords

none

Package Sidebar

Install

npm i awesome-only-resolves-last-promise

Weekly Downloads

64,497

Version

1.0.3

License

MIT

Unpacked Size

7.29 kB

Total Files

10

Last publish

Collaborators

  • slorber