Why in this case native promises seems to be faster than callbacks in chrome?
Here's the jsperf: http://jsperf.com/promise-vs-callback callback case (211 Ops/s): // async test var d = deferred; function getData(callback) { setTimeout(function() { callback('data') }, 0) } getData(function(data) { d.resolve() }) Promise case(614 ops/s): // async test var d = deferred; function getData() { return new Promise(function(resolve) { setTimeout(function() { resolve('data') }, 0); }) } getData().then(function(data) { d.resolve() }) As you see promise are way faster, but they have more code. The question is why this happens. Here deferred is to defined by jsperf to show it as the