JSFiddle - React, Tailwind, and code Playground
by icodeforlove
HTML
<script src="https://rawgit.com/icodeforlove/task.js/master/dist/client/task.min.js"></script>
<input id="add" type="button" value="add worker" />
<input id="fps" type="text" disabled />
JavaScript
var FPS = {
startTime: 0,
frameNumber : 0,
getFPS : function(){
this.frameNumber++;
var d = new Date().getTime(),
currentTime = ( d - this.startTime ) / 1000,
result = ( ( this.frameNumber / currentTime ).toFixed(2) );
if( currentTime > 1 ){
this.startTime = new Date().getTime();
this.frameNumber = 1;
}
return result;
}
};
var fpsInput = document.querySelector('#fps'),
addButton = document.querySelector('#add'),
workers = 1,
run = 0;
function fibonacci (n) {
function fib(n) {
return n < 2 ? 1 : fib(n - 1) + fib(n - 2);
}
return fib(n);
}
var fibonacciAsync = task.wrap(fibonacci);
addButton.addEventListener('click', function () {
task.terminate();
for (var i = 0; i < workers; i++) {
loop();
}
workers++;
});
/*var task2 = task.defaults({
maxWorkers: 1
});
*/
function loop () {
run++;
fibonacciAsync(run).then(function () {
fpsInput.value = run;
loop();
}, function (error) {});
}
/*loop();
loop();
loop();*/
/*
loop();
loop();
loop();
loop();
loop();
loop();
*/