参考了同学们的几个答案,居然没有一个能明白,请老师不要嫌烦哦帮我理解一下
//cook().then(data => eat(data)).then(data => wash(data));
//cook().then(eat).then(wash).then((data)=>{console.log(data);
cook()
.then(function(data){
return eat(data);
})
.then(function(data){
return wash(data);
})
.then(function(data){
console.log(data);
})
正在回答
同学你好,关于你的问题,回答如下:
1、上面老师给你解释的就是第三个的执行流程。
2、然后注释掉的两个,第一个是箭头函数的写法,可以参考如下理解:
在es6中,单一参数的单行箭头函数语法结构可以总结如下:
const 函数名 = 传入的参数 => 函数返回的内容,因此针对于
const pop = arr => arr.pop(),其中 pop是函数名, arr是传的参数 , =>之后的内容是函数返回的内容,该函数相当于:
var pop = function(arr){
arr.pop()
}
3、第二个是直接执行了函数,参数是上一个resolve中的参数。
另,建议:不建议直接看其他同学的答案,可以先摸清思路,自己写下,印象会更加深刻哦。这里原理都是一样的,就是Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。且都会返回一个Promise实例,所以可以链式调用then方法,上一个的返回值,可以作为下一个的参数。
祝学习愉快~
同学你好,不嫌麻烦的哦,很高兴能帮助你解决疑问。
不过同学若是能详细的说明下具体是哪里不理解,能够更加有针对性的帮助同学解决疑问哦。如下,是老师基于整个习题梳理,若是还是有疑问,可以详细的描述下,再次提问哦。
Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。
如下,代码,所以then方法执行的是resolve这个回调,并且这个函数都接受Promise对象传出的值作为参数。
还有就是为什么打印它,then中接收上面传递过来的data,又在调用函数的时候,传递给了函数,在函数中打印了,如下:
如果我的回答帮助了你,欢迎采纳,祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星