console.log('script start');
setTimeout(function() {
console.log('setTimeout');
}, 0);
Promise.resolve().then(function() {
console.log('promise1');
return Promise.resolve(111);
}).then(function(val) {
console.log(val);
console.log('promise1-2');
});
Promise.resolve().then(function() {
setTimeout(function() {
console.log('promise2');}
,0);
}).then(function() {
console.log('promise2-2');
}).then(function() {
console.log('promise2-3');
}).then(function() {
console.log('promise2-4');
}).then(function() {
console.log('promise2-5');
}).then(function() {
console.log('promise2-6');
});
console.log('script end');
输出结果
script start
script end
promise1
promise2-2
promise2-3
111
promise1-2
promise2-4
promise2-5
promise2-6
setTimeout
promise2
Promise.resolve().then(function() {
console.log('promise1');
}).then(()=>{
Promise.resolve(111).then((val)=>{
console.log(val);
console.log('promise1-2');
})});
Promise.resolve().then(function() {
setTimeout(function() {
console.log('promise2');}
,0);
}).then(function() {
console.log('promise2-2');
}).then(function() {
console.log('promise2-3');
}).then(function() {
console.log('promise2-4');
}).then(function() {
console.log('promise2-5');
}).then(function() {
console.log('promise2-6');
});
输出结果
promise1
promise2-2
111
promise1-2
promise2-3
promise2-4
promise2-5
promise2-6
promise2
console.log('script start');
setTimeout(function() {
console.log('setTimeout');
}, 0);
Promise.resolve().then(function() {
console.log('promise1');
return Promise.resolve(111);
}).then(function(val) {
console.log(val);
console.log('promise1-2');
});
Promise.resolve().then(function() {
setTimeout(function() {
console.log('promise2');}
,0);
}).then(function() {
console.log('promise2-2');
});
console.log('script end');
输出结果
script start
script end
promise1
promise2-2
111
promise1-2
setTimeout
promise2
将 return Promise.resolve(111)更改为return 111;
console.log('script start');
setTimeout(function() {
console.log('setTimeout');
}, 0);
Promise.resolve().then(function() {
console.log('promise1');
return 111;
}).then(function(val) {
console.log(val);
console.log('promise1-2');
});
Promise.resolve().then(function() {
setTimeout(function() {
console.log('promise2');}
,0);
}).then(function() {
console.log('promise2-2');
});
console.log('script end');
输出结果为:
script start
script end
promise1
111
promise1-2
promise2-2
setTimeout
promise2
Promise.resolve().then(() => console.log(1)).then(val => console.log(11));
Promise.resolve().then(() => setTimeout(() => console.log(2), 0)).then(() => console.log(22));
输出结果:
1 11 22 2
Promise.resolve().then(() => console.log(1)).then(val => console.log(11));
Promise.resolve().then(() => console.log(2)).then(() => console.log(22));
输出结果:
1 2 11 22