老师可以看看我的注释对吗
以及,老师可以把代码执行的每一步顺序标注一下嘛,谢谢老师
function f(cb){
setTimeout(function(){
// 如果不这样写,调用f函数时,没有传递参数,执行cb()这句代码会报错,到执行项目无法执行下去。
//
// cb && cb()这种写法, 是为了保证传入cb之后,才执行cb(),如果没有传入cb, 就不会执行cb(),防止报错。
cb && cb(); //如果cb存在(存在的话必须是函数,否则会报错)就去调用cb方法
},1000);
}
//回调地狱
// f(function(){
// console.log(1);
// f(function(){
// console.log(2);
// f(function(){
// console.log(3);
// f(function(){
// console.log(4);
// f(function(){
// console.log(5);
// f(function(){
// console.log(6);
// })
// })
// })
// })
// })
// })
//Promise
//方法 用于请求数据(模拟)
function f(){
return new Promise(resolve => { //Promise对象接收的这个形参resolve代表成功时候要做的事
setTimeout(function(){
resolve(); //1s后调用resolve函数。就是下面的匿名函数,可以在想去调用resolve()的时候去调用就可以了
},1000);
})
}
//.then方法是每个promise实例都具有的,
f() //调用函数f,返回一个新的promise对象
.then(function(){ //.then后面的匿名函数就是上面的形参resolve
console.log(1);
return f(); //必须调用f(),才可以返回一个promise实例,下面才可以调用.then方法
})
.then(function(){
console.log(2);
return f();
})
.then(function(){
console.log(3);
return f();
})
函数f里面的resolve参数和resolve()方法都对应.then后面的匿名函数对吗?然后当调用f的时候,返回一个promise实例,所以可以调用then方法,,then中的匿名函数就是f函数里面一秒后执行的resolve(),这个resolve在一开始作为形参传递进来了,所以在回调中可以调用,这样理解对吗
20
收起
正在回答 回答被采纳积分+1
2回答
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程



恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星