async-decorators

0.1.5 • Public • Published

There are some helpfull decorators in this project for async class methods and functions.

Install

npm install --save async-decorators

Import

import {memoize, serialize, isSkipError} from 'async-decorators';

Memoize decorator

has parameters expireMs and cacheSize
usage:

class Action {
  @memoize({expireMs: K_EXPIRE_MS, cacheSize: 256})
  async query(p1, p2) {
    return await getDataAsync({p1, p2});
  }
}

or just

const asyncFn = memoize(async (x) => {
  return await ....
});

See example source

npm run example_memoize

and test source

npm run test_memoize

Serialize decorator

Serializes async method calls. (Make a new async call only if previous is completed) If there are more than one pending async calls, skip all but the last.

usage:

class Action {
  @serialize()
  async query(p1, p2) {
    return await getDataAsync({p1, p2});
  }
}

or just

const sfn = serialize(async (x) => {
  return await ....
})

See example source

npm run example_serialize

Both decorator usage

class Action {
  @serialize()
  @memoize({expireMs: K_EXPIRE_MS})
  async query(p1, p2) {
    return await getDataAsync({p1, p2});
  }
}

See example source

npm run example_ser_memoize

Package Sidebar

Install

npm i async-decorators

Weekly Downloads

7

Version

0.1.5

License

MIT

Last publish

Collaborators

  • istarkov