1.3.7 • Published 10 months ago

@alwatr/async-queue v1.3.7

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

10 months ago

1.3.6

10 months ago

1.3.5

10 months ago

1.3.4

10 months ago

1.3.3

10 months ago

1.3.2

10 months ago

1.3.1

10 months ago

1.3.0

11 months ago

1.2.8

12 months ago

1.2.9

12 months ago

1.2.10

11 months ago

1.2.11

11 months ago

1.2.7

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year 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