前端达人吗,能帮忙解释一下这个吗

const p1 = new Promise(resolve => {
console.log('begin');
resolve('then1');
}).then(v => {
console.log(v);
return 'then2';
})

// then 链式调用,和微任务的产生关系
new Promise(resolve => {
console.log(1);
resolve();
})
.then(() => {
console.log(2);
})
.then(() => {
console.log(3);
})
.then(() => {
console.log(4);
syncSleep(1000)
})
.then(() => {
console.log(5);
})

const p2 = new Promise(resolve => {
// p1 resolved,并不能立刻让 p2 状态变更为 resolved
resolve(p1);
})

p2.then(v => console.log(v));

输出结果:
begin
1
then1
2
3
4
then2
5

不能理解。 主要是 p1 resolved,p2 什么时候才能 resolved,这个时机不太清楚
展开
1