0.1.5 • Published 10 years ago

cancelify v0.1.5

Weekly downloads
3
License
-
Repository
github
Last release
10 years ago

cancelify

NPM Version Build Status

A javascript library for making async operations cancelify

Installation

$ npm install cancelify --save

API

cancelify

cancelify()

Returns a new cancelify:

var cancelify = require('cancelify');

var cancelable = cancelify();
callAsyncOperation(arg1, arg2, arg3, cancelable.future());

setTimeout(function () {
    cancelable.cancel('Operation timed out');
}, 1000);

cancelify.future()

Returns an 'empty' future (one that will never be canceled).

function asyncOperation(arg1, arg2, arg3, future) {
    future = future || cancelify.future();

    // Continue with function knowing there is a cancelable
}

cancelable

cancelable.cancel()

Cancels the current async operations.

var cancelify = require('cancelify');
var cancelable = cancelify(function (err, data) {
    if (err) throw err;
    console.log(data);
});

asyncOperation(arg1, arg2, arg3, cancelable.future());

cancelable.cancel('canceled');

cancelable.canceled(callback)

If no arguments provide, returns true if the cancelable has been canceled:

//In ES6
function asyncOperation(cancelable) {
  return spawn(function* () {
    while(!cancelable.canceled()) {
      yield NextAsyncOp();
    }
  })
}

If canceled with a callback, calls callback when the cancelable is canceled (this is probably currently the most useful of these methods).

function get(url, future) {
    var req = request(url, future);

    future.canceled(function (reason) {
        req.abort();
    });
}

cancelable.throwIfCanceled()

Throws the reason if the cancelable has been canceled:

//In ES6
function asyncOperation(cancelable) {
    return spawn(function* () {
        while(true) {
            cancelable.throwIfCanceled()
            yield NextAsyncOp();
        }
    })
}

cancelable.future()

Returns future functions delegates cancelable:

  • cancel
  • canceled
  • throwIfCanceled

License

Copyright (c) 2014 Tao Yuan. Licensed under the MIT license.

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago