参考了同学们的几个答案,居然没有一个能明白,请老师不要嫌烦哦帮我理解一下

参考了同学们的几个答案,居然没有一个能明白,请老师不要嫌烦哦帮我理解一下

//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);

 })


正在回答

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

2回答

同学你好,关于你的问题,回答如下:

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方法,上一个的返回值,可以作为下一个的参数。

祝学习愉快~

  • 如花慕少 提问者 #1
    主要自己写不出来,才参考,结果一参考发现还是不懂,这个课越听越没耐心越糊涂,有时总得翻点其他资料来理解,一个好老师真的非常重要。 非常感谢老师的耐心回答。
    2020-05-15 16:05:24
好帮手慕糖 2020-05-14 09:43:05

同学你好,不嫌麻烦的哦,很高兴能帮助你解决疑问。

不过同学若是能详细的说明下具体是哪里不理解,能够更加有针对性的帮助同学解决疑问哦。如下,是老师基于整个习题梳理,若是还是有疑问,可以详细的描述下,再次提问哦。

Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。

如下,代码,所以then方法执行的是resolve这个回调,并且这个函数都接受Promise对象传出的值作为参数。

http://img1.sycdn.imooc.com//climg/5ebca20009869b1f04440176.jpg

还有就是为什么打印它,then中接收上面传递过来的data,又在调用函数的时候,传递给了函数,在函数中打印了,如下:

http://img1.sycdn.imooc.com//climg/5ebca20b09728bc503110086.jpg

http://img1.sycdn.imooc.com//climg/5ebca21b099b92d305730093.jpg

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 如花慕少 #1
    谢谢老师耐心解答,我的疑问就是我参考了问题的三个答案,他们三个答案都可以实现效果,但是我一个都没有搞明白,为什么这样写,是什么思路。 (三个答案写在问题上)
    2020-05-14 11:44:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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