ferryboat.js

0.1.4 • Public • Published

ferryboat

An async control-flow library

Browser

<script src="yourStaticPath/ferryboat.js"></script>

Default import

npm install ferryboat.js
import ferryboat from 'ferryboat.js';

Usage

  function test(value) {
    return new Promise(function (resolve) {
      setTimeout(function () {
        resolve(value || 'ferryboat' + Math.random());
      }, 1000);
    });
  }

  new ferryboat({
    max: 2,
    stopOnFail: false,
    taskList: [
      {
        fn: test
      },
      {
        fn: test
      },
      {
        fn: test
      },
      {
        fn: test
      },
      {
        fn: test.bind(null, 'FERRYBOAT')
      }
    ],
    onSuccess: function (res) {
      console.log(res.result);
      console.log(res.current);
      console.log(res.total);
      console.log(res.taskIndex);
    },
    onFail: function (res) {
      console.log(res.error);
      console.log(res.current);
      console.log(res.total);
      console.log(res.taskIndex);
    },
    onComplete: function (res) {
      console.log(res.successCount);
      console.log(res.failCount);
      console.log(res.total);
    }
  });

  setTimeout(function() {
    ferryboat.add({
      fn: test.bind(null, 'FERRYBOAT_ADD_TASK')
    });
  }, 4000);

API

Constructor

new ferryboat(options);

Names Required Type Description
options true Object initial options

Options

Names Defaults Description
max 1 maximum number of processes
stopOnFail true stop execute when a task fails
taskList [] task list (the function should returns promise)
onSuccess null success callback function
onFail null fail callback function
onComplete null complete callback function

Readme

Keywords

Package Sidebar

Install

npm i ferryboat.js

Weekly Downloads

5

Version

0.1.4

License

MIT

Unpacked Size

65.8 kB

Total Files

18

Last publish

Collaborators

  • kilohaty_axi