Async function bind.
var bindAsync = function(fn, ctx) { return function() { setTimeout(fn.bind.call(fn.apply, fn, ctx || this, arguments), 0); } };