关于resolve
function foo(){
return new Promise(resolve => {
console.log('a');
resolve();
})
}
foo().then(function(){
console.log('b');
return foo();
}
请问老师,这里的resolve是一个参数,为什么可以使用resolve调用它呢?
这里的resolve和后面then里面的匿名函数有关系吗?
如果没有关系resolve这个参数到底指代什么呢?
正在回答
同学你好,执行顺序是同学理解的这样,但是输出顺序不一定。
因为new Promise()执行完毕之后才会去调用then方法,然后执行里面的函数,所以在执行promise中代码的时候输出了a,然后执行then方法中函数的时候输出了b。
但是如果promise中有定时器,也会执行定时器,但是因为定时器是异步的,所以会最后输出。例如:
这样就会先输出b,然后输出a
祝学习愉快!
同学你好,问题解答如下:
1、promise方法有两个参数,一个是resolve,一个是reject,这两个都是函数参数,所以可以直接调用。resolve代表成功时要做的事情,reject代表失败时要做的事情
2、then方法中也有两个参数,第一个函数对应着resolve,第二个函数对应着reject。当resolve调用时,就会执行then方法中第一个参数函数;当reject调用时,就会执行then方法中第二个参数函数
例如上面代码中调用的是reject方法,then方法中就会执行第二个参数。输出错误
3、关于reject这里可以先了解,在后面小节中会讲到
祝学习愉快!
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星