1.1.1 • Published 9 years ago

briskit v1.1.1

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

briskit

a high-priority asynchronous task queue.

(adapted from kriskowal/asap)

usage

assuming we have access to a high-priority async method (like MutationObserver, MessageChannel, or setImmediate):

setTimeout(function() {
  console.log('this will print third');
});
briskit(function() {
  console.log('this will print second');
});
(function() {
  console.log('this will print first');
}());

briskit will use setTimeout as the async provider if nothing better is available.

instances

multiple briskit instances can be created with the fork method. each instance will independently execute its own stack.

var $briskit = briskit.fork();

execution

execution of a briskit instance's stack can be stopped and started with the defer and flush methods, respectively.

var $briskit = briskit.fork();
$briskit.defer();
$briskit(function(){ console.log( "I'm deferred!" ) });
briskit(function(){ console.log( "I'm not!" ) }); // -> I'm not!
$briskit.flush(); // -> I'm deferred!

providers

briskit will use the best possible async provider for its environment, but if for whatever reason you would like to override that choice:

briskit.use( 'name' );
NameNative Method
nextTicsetImmediate
observerMutationObserver
workerMessageChannel
timeoutsetTimeout

use will also accept a function that returns a custom provider. a custom, synchronous provider might look something like:

briskit.use(function() {
  return function( cb ) {
    cb();
  };
});

stack

the briskit stack can be used as a standalone class. all parameters are optional:

ParameterTypeDefaultDescription
autoflushbooleanfalseWhen true, the stack will attempt to flush as soon as a callback is enqueued.
providerfunctionfunction( cb ){ cb() }The function used for flush calls. Synchronous by default.
preallocnumber1024The preallocated stack size.
// commonjs
var stack = briskit.stack( true );

// ES6 (requires compilation)
import Stack from 'briskit/src/stack';
var stack = new Stack( true );

// usage
stack.defer();
stack.enqueue(function() {
  // ...
});
stack.flush();
1.1.1

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.2.2

9 years ago

0.2.0

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago