Coder Social home page Coder Social logo

taskarian's Introduction

taskarian

Build Status semantic-release

A Task (Future) implementation in TypeScript. Useful for managing asynchronous tasks that may fail.

A Task is different then a Promise because it is lazy, rather then eager. A Promise runs as soon as you instantiate it. A Task doesn't run until you call fork. Pure functions can return tasks (just not execute them). This means that you could, for example, return a task from a Redux reducer, if that's your thing.

install

npm install --save taskarian

yarn add taskarian

usage

import Task from 'taskarian';

function parse(s) {
  return new Task(function(reject, resolve) {
    try {
      resolve(JSON.parse(s));
    }
    catch(e) {
      reject(e.message);
    }
  });
}

parse('foo').fork(
  function(err) { console.error(err) },
  function(value) { console.log(value) }
);

It is also possible to cancel a task, if the task supports it:

import Task, { Resolve } from 'taskarian';

const cancellable = new Task((reject, resolve: Resolve<string>) => {
  const x = setTimeout(() => resolve('Yo!'), 3000);
  return () => clearTimeout(x);
});

const cancel = task.fork(
  err => console.error(err),
  s => console.warn(`Task should never have finished; ${s}`),
);

cancel();

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.