Promise Queue

Benchmark created on


Setup

function promiseWait(ms = 0) {
  return new Promise(res => {  
    setTimeout(res, ms)
  });
  
}

const requestIdlePromiseSlow = function requestIdlePromiseFactory1() {
	var idlePromiseQueue = Promise.resolve();
	
	return (timeout = undefined) => {
		  idlePromiseQueue = idlePromiseQueue
		   		.then(() => promiseWait(timeout));
		   		
		  return idlePromiseQueue; 
	}
}()

const requestIdlePromiseFast = function requestIdlePromiseFactory1() {
	var idlePromiseQueue = Promise.resolve();
	return (timeout = undefined) => {
		return new Promise(res => {
			idlePromiseQueue = idlePromiseQueue
			.then(() => promiseWait(timeout).then(res));
        }) 
    }
}

Test runner

Ready to run.

Testing in
TestOps/sec
requestIdlePromiseSlow
requestIdlePromiseSlow();
ready
requestIdlePromiseFast
requestIdlePromiseFast();
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.