1.3.7 • Published 8 months ago

@alwatr/async-queue v1.3.7

Weekly downloads
-
License
AGPL-3.0-only
Repository
github
Last release
8 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

*/
1.3.7

8 months ago

1.3.6

8 months ago

1.3.5

8 months ago

1.3.4

8 months ago

1.3.3

8 months ago

1.3.2

8 months ago

1.3.1

8 months ago

1.3.0

9 months ago

1.2.8

10 months ago

1.2.9

10 months ago

1.2.10

9 months ago

1.2.11

9 months ago

1.2.7

12 months ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago