Skip to content

jounger/waitgroup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

waitgroup

JS version like wait group in Golang

Example

import http from "http";
import waitgroup from "./waitgroup.js";

async function sleep(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

async function main() {
  const wg = waitgroup();
  const urls = [
    "https://developer.mozilla.org/",
    "https://www.golang.org/",
  ];

  for (const url of urls) {
    wg.add(1);
    http.get(url, (res) => {
      console.log("content-length", res.headers["content-length"] || 0);
      wg.done(1);
    });
  }

  wg.add(1);
  Promise.resolve().then(() => {
    console.log("Task started");
    await sleep(1000)
    console.log("Task completed");
    wg.done(1);
  });

  await wg.wait();
  console.log("All tasks completed");
}

main();

About

JS version like wait group in Golang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published