var log = []; var resolvedPromise = Promise.resolve(null); function schedulePromiseTask(f) { resolvedPromise.then(f); } setTimeout(function() { log.push("t1start"); schedulePromiseTask(function() { log.push("promise"); }); log.push("t1end"); }, 10); setTimeout(function() { log.push("t2"); postMessage(log.join(", ")); }, 10);