var r = new Promise(function(resolve, reject) {
console.log("a");
resolve();
});
setTimeout(() => console.log("d"), 0);
r.then(() => console.log("c"));
console.log("b");
// 执行顺序 a b c d
setTimeout(() => console.log("d"), 0);
var r1 = new Promise(function(resolve, reject) {
resolve();
});
r1.then(() => {
var begin = Date.now();
while (Date.now() - begin < 1000);
console.log("c1");
new Promise(function(resolve, reject) {
resolve();
}).then(() => console.log("c2"));
});
// 虽然第二个promise 间隔了1秒 但是还是 先于setTimeout执行
// c1 c2 d