老师,帮忙看下

老师,帮忙看下

关于对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);,匿名函数返回最终的结果


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,老师认真看了同学梳理的思路和总结,理解是对的,真棒!祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师