<script>setTimeout(function(){
console.log(1);},0)newPromise((resolve)=>{
console.log(2);resolve()}).then( v =>{
console.log(3);}).then( v =>{
console.log(4);})
console.log(5);</script>
结果:
分析:
先进入new Promise(xx)执行代码,输出 2 resolve() 改变状态
往下执行 .then() => .then() => 输出5
再执行.then()的异步回调函数 => 输出3 输出4
最后执行定时器的异步回调函数 => 输出1
题3:
代码:
script>constfirst=()=>(newPromise((resolve,reject)=>{
console.log(3);let p =newPromise((resolve,reject)=>{
console.log(7);setTimeout(()=>{
console.log(5);resolve(6)},0);resolve(1)})resolve(2)
p.then( v =>{
console.log(v);})}))first().then( v =>{
console.log(v);})
console.log(4);</script>