哈哈,我也是这个问题,听到老师讲输出123的时候,我在想一个Promise输出3个,想所以然就测试
new Promise((resolve, reject) =>{
setTimeout(()=>{
console.log(1);
resolve();
}, 1000)
}).then((res)=>{
setTimeout(()=>{
console.log(2);
resolve();
}, 2000)
}).then((res)=>{
setTimeout(()=>{
console.log(3);
}, 3000)
})
字面上理解,这个是没错了,结果报错,第二个resolve is not defined
去掉后
new Promise((resolve, reject) =>{
setTimeout(()=>{
console.log(1);
resolve();
}, 1000)
}).then((res)=>{
setTimeout(()=>{
console.log(2);
}, 2000)
}).then((res)=>{
setTimeout(()=>{
console.log(3);
}, 3000)
})
虽然可以输出1,2,3,但是3出来得太快了,不像是过了3秒的样子,看到有同样的问题,然后看到老师的解答,同时也就明白为什么resolve is not defined了,一个Promise,对应一个resolve状态,后面要继续,就重新new一个,不过不是太明白为什么要return
基础不好,谢谢老师指点·