@skidding/async-retry

Wait until cb doesn't throw or time out

Usage no npm install needed!

<script type="module">
  import skiddingAsyncRetry from 'https://cdn.skypack.dev/@skidding/async-retry';
</script>

README

async-retry

Build Status

Wait until cb doesn't throw or time out.

Install @skidding/async-retry.

Why not zeit/async-retry?

I use this package for testing async behavior where running times are sensitive. What's different here?

  • No exponential backoff strategy
  • Callback is ran immediately
  • Default loop interval is minimal
  • Default timeout is less than a usual test timeout

These settings minimize the time spent waiting and don't require custom options in most cases. They work for tests because assertion execution is usually cheap (I think ¯\_(ツ)_/¯).

Usage

retry(callback: Function, options: Object): Promise

See async-until for available options.

await retry(() => {
  expect(onChange).toHaveBeenCalledWith({ count: 3 });
});