1.0.10 • Published 2 years ago

glassfiber v1.0.10

Weekly downloads
-
License
(ISC OR GPL-3.0)
Repository
github
Last release
2 years ago

NPM version Downloads Rate on Openbase Lib Size Code Quality

Glassfiber is an intuitive Javascript co-routine library implemented using Promises.

Requirements

It runs inside any webbrowser or NodeJS environment supporting at least ECMAScript ES2018.

Minified and gzip-compressed, it is less than 1 KB of code.

It has zero dependencies on other modules.

Basic usage

Example:

var Glassfiber = require("glassfiber.min.js");

async function threadA(a, b) {
  console.log("A starting");
  await Glassfiber.yield();
  console.log(a);
  await Glassfiber.sleep(1000);
  await Glassfiber.yield();
  console.log(b);
  await Glassfiber.yield();
  console.log("A done");
}

async function threadB(a, b, c) {
  console.log("B starting");
  await Glassfiber.yield();
  console.log(a);
  await Glassfiber.yield();
  await Glassfiber.sleep(500);
  console.log(b);
  await Glassfiber.yield();
  console.log(c);
  await Glassfiber.yield();
  console.log("B done");
}

async function threadC(a) {
  console.log("C starting");
  await Glassfiber.yield();
  await Glassfiber.sleep(250);
  console.log(a);
  await Glassfiber.yield();
  console.log("C done");
}

async function main() {
  var p1 = Glassfiber.spawn( threadA(12, 13) );
  var p2 = Glassfiber.spawn( threadB(14, 15, 16) );
  var p3 = Glassfiber.spawn( threadC(17) );
  await Promise.all([p1, p2, p3]);
}

main();

Reference documentation

API

Specified parameters:

  • priority is an optional priority Can be 0, 1, 2 or 3 (defaults to 0 if omitted).
  • ms delay in milliseconds

Exposed API-list (in NodeJS and the browser):

  • Glassfiber.spawn(promise) Spawn a new co-routine. Passes through the promise.
  • Glassfiber.yield(priority?) Give other coroutines a chance to run, specifying our own priority (lower numbers are more important). Returns a Promise.
  • Glassfiber.sleep(ms) Sleeps for this many milliseconds, returns a Promise.

References

Card-carrying member of the zerodeps movement.

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago