他的执行结果就是cucceed,执行完成后就不会在执行下一个then, 分析: p4是p.then(),then()的返回值,在第一次then()的返回值就是p4,他根本就拿不到两次then()的返回值,所以就不会走第二次then
let p = new Promise((resolve, reject) => { resolve(); }); //执行的结果时 succeed let p4 = p.then(() => { console.log('succeed'); return p4; }, () => { }); p4.then(()=>{ consolo.log(111); },(err)=>{ consolo.log('err',err); });这里的这个歌就可以拿到原理是 p4就是一次then 执行结果: succeed err [TypeError: Chaining cycle detected for promise #]
如果想要执行成功采用下面方式(其中的一种方式)
let p = new Promise((resolve, reject) => { resolve(); }); //执行的结果时 succeed let p4 = p.then(() => { setTimeout(() => { console.log('succeed'); return p4; }); }, () => { }).then(() => { console.log('succeed2'); }, (err) => { console.log('err', err); });