await-task-queue

Execute tasks consecutive while still being able to await

Usage no npm install needed!

<script type="module">
  import awaitTaskQueue from 'https://cdn.skypack.dev/await-task-queue';
</script>

README

Why

Simple task queue that execute tasks consecutive but each add can be awaited to know when the added task is executed and get return data. A promise start to excecute when it is created that is why the promise itself is created by the queue.

Example

import TaskQueue from './../src/task-queue.js';
let queue = TaskQueue();

async function example() {
    queue.add((resolve) => resolve("Gris"))
        .then((res) => console.log(res));

    queue.add((resolve) => setTimeout(resolve, 200))
        .then(() => console.log("Slept for 200ms"));

    queue.add((resolve, reject) => reject("Failed"))
        .then(()=>console.log("Shall never happen") )
        .catch((e)=>console.log("Got error: ", e));

    let result = await queue.add((resolve) => resolve("Await last"));
    console.log(result);
}
example();

// Printout
// Gris
// Slept for 200ms
// Got error:  Failed
// Await last