5.5.3 • Published 6 months ago

@alwatr/async-queue v5.5.3

Weekly downloads
-
License
AGPL-3.0-only
Repository
github
Last release
6 months ago

Async Queue

A queue that executes async tasks in order like mutex and semaphore methodology for javascript and typescript.

Installation

yarn add @alwatr/async-queue

Usage

import {AsyncQueue} from '@alwatr/async-queue';
import {waitForTimeout} from '@alwatr/wait';

const queue = new AsyncQueue();

async function longTask(n) {
  console.log('longTask(%s)', n);
  await queue.push('longTaskId', async () => {
    console.log('longTask %s start', n);
    // Simulate a long task
    await waitForTimeout(1000);
  });
  console.log('longTask %s end', n);
}

// run the tasks parallel
longTask(1);
longTask(2);
longTask(3).then(() => console.log('longTask 3 resolved'));
longTask(4);

/*
Output:

  longTask(1)
  longTask(2)
  longTask(3)
  longTask(4)
  longTask 1 start
  longTask 1 end
  longTask 2 start
  longTask 2 end
  longTask 3 start
  longTask 3 end
  longTask 3 resolved
  longTask 4 start
  longTask 4 end

*/
5.5.1

7 months ago

5.5.0

8 months ago

5.4.0

8 months ago

5.3.0

9 months ago

5.0.0

12 months ago

1.3.8

12 months ago

5.5.3

6 months ago

5.5.2

7 months ago

1.3.7

12 months ago

1.3.6

1 year ago

1.3.5

1 year ago

1.3.4

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.3.0

1 year ago

1.2.8

1 year ago

1.2.9

1 year ago

1.2.10

1 year ago

1.2.11

1 year ago

1.2.7

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago