create-async-flag
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

create-async-flag

Simple promise utility for separate, but dependent control flow. See example here.

API

createAsyncFlag()

Creates a flag that can be set, unset, and wait upon.

import createAsyncFlag from 'create-async-flag';

const flag = createAsyncFlag();

[flag].wait()

Creates a promise that will only resolve once set, or resolve immediatly if already set.

const flag = createAsyncFlag();

async function run() {
  // ...
  await flag.wait(); // execution will hault until flag is `set`
  // ...
}

[flag].set()

Marks the flag to be immediatly resolved, and to resolve any currently waiting promises.

const flag = createAsyncFlag();

function log() {
  flag.wait().then(() => console.log('one'));
  flag.set();
  flag.wait().then(() => console.log('two'));
}

log(); // => 'one'
       // => 'two'

[flag].unset()

Marks a flag to wait until set is called again.

const flag = createAsyncFlag();

async function start() {
  flag.unset();
  await flag.wait();
  return; // will never return, unless `set` is called
}

[flag].isSet()

Returns the current state of the flag.

const flag = createAsyncFlag();

flag.isSet(); // => false
flag.set();
flag.isSet(); // => true

Readme

Keywords

none

Package Sidebar

Install

npm i create-async-flag

Weekly Downloads

863

Version

0.1.1

License

MIT

Unpacked Size

5.88 kB

Total Files

9

Last publish

Collaborators

  • nickbreaton