老师,帮忙看下
关于对Promise的理解
1.Promise是一个对象
2.new Promise 一个对象的实例
3.new Promise(test) Promise里面传入一个执行函数
,函数中有resolve和reject两个回调函数作为参数,所以我们可以直接写成 new Promise((resolve,reject) =>{}) ;这里是箭头函数,也可以直接写成匿名函数的方式:new Promise(function(resolve,reject){})
4.用Promise的实例p的then方法来处理test函数中的异步执行,如果执行resolve就是成功,如果执行reject就是失败
5.下面直接看例子:
function add(num){
return new Promise((resolve,reject) =>{
console.log('aaa='+num);
resolve(num+num);
})
}
function mul(num){
return new Promise((resolve,reject) =>{
console.log('bbb='+num);
resolve(num*num);
})
}
function del(num){
return new Promise((resolve,reject) =>{
console.log('ccc='+num);
resolve(num-num);
})
}
add(20)
.then(mul)
.then(del)
.then(function(data){
console.log('ddd='+data);
})
// 结果
// aaa=20
// bbb=40
// ccc=1600
// ddd=0
执行步骤
1.执行add(20)函数,传入一个参数,add函数返回Promise实例,Promise实例中传入了一个匿名函数,匿名函数中有resolve,reject两个回调,下面利用promise实例的then方法来调用里面的回调函数
2.先传入mul方法,这里mul函数就是add函数中的resolve函数,传入mul函数的参数就是(num+num)mul函数执行之后,又返回了一个Promise实例,进入下一个then,
3.then里面传入del方法,此时mul里面的resolve就是 del函数,del方法同样返回Promise实例
4.最后del函数执行完之后,也返回Promise实例,这时定义一个匿名函数,这个匿名函数就代表del函数中的resolve(num-num);,匿名函数返回最终的结果
正在回答
同学你好,老师认真看了同学梳理的思路和总结,理解是对的,真棒!祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星