Skip to content

Latest commit

 

History

History
28 lines (21 loc) · 647 Bytes

README.md

File metadata and controls

28 lines (21 loc) · 647 Bytes

concurrency-light

Lightweight concurrency management, heavily inspired by ember-concurrency.

Installation

  • yarn add concurrency-light
  • npm install --save concurrency-light

Usage

import { task, TaskStrategy, timeout } from "concurrency-light";

class DocClass {
  constructor() {
    this.asyncSearch("pants");
    this.asyncSearch.isRunning; // true
    this.asyncSearch("skirts"); // restarted
  }

  @task({ strategy: TaskStrategy.Restart })
  *asyncSearch(search: string) {
    yield timeout(500);
    yield fetch(`/api/search?filter[query]=${search}`);
  }
}