采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
一个Promise如何实现三个异步事件的串行执行?
参考下这个代码:
new Promise((resolve, reject) => { setTimeout(() => { console.log(1) resolve() }, 1000)}).then((res) => { return new Promise((resolve, reject) => { setTimeout(() => { console.log(2) resolve() }, 1000) })}).then((res) => { setTimeout(() => { console.log(3) }, 1000)})
new Promise((resolve, reject) => {
setTimeout(() => {
console.log(1)
resolve()
}, 1000)
}).then((res) => {
return new Promise((resolve, reject) => {
console.log(2)
})
console.log(3)
也就是new 一个Promise 是没有办法实现这个需求的
应该还是没有真正理解promise的作用,promise是对异步状态进行管理的,一般情况下一个promise里面是一个异步操作
非常感谢!
哈哈,我也是这个问题,听到老师讲输出123的时候,我在想一个Promise输出3个,想所以然就测试
new
Promise((resolve, reject) =>{
setTimeout(()=>{
console.log(1);
resolve();
}).then((res)=>{
console.log(2);
}, 2000)
console.log(3);
}, 3000)
字面上理解,这个是没错了,结果报错,第二个resolve is not defined
去掉后
虽然可以输出1,2,3,但是3出来得太快了,不像是过了3秒的样子,看到有同样的问题,然后看到老师的解答,同时也就明白为什么resolve is not defined了,一个Promise,对应一个resolve状态,后面要继续,就重新new一个,不过不是太明白为什么要return
基础不好,谢谢老师指点·
登录后可查看更多问答,登录/注册
横跨小程序端、云后端、CMS一站式云开发的小程序全栈课程
3.7k 20
1.7k 4
2.0k 1
2.6k 1
2.5k 13
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号