老师, return 1 + 1;没有返回promise实例啊,为什么还可以再接着.then?

老师, return 1 + 1;没有返回promise实例啊,为什么还可以再接着.then?

createAsyncTask(() => {

  console.log('我变成了异步任务!!!');

  return 1 + 1;

}).then(res => {

  console.log(res);

});


正在回答

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

4回答

同学你好,是的,是决议成功的promise实例。

祝学习愉快!

好帮手慕糖 2020-03-26 19:04:30

同学你好,then方法会默认返回一个Promise,所以才可以连接使用then。而then方法中的返回值会作为下一个then方法中的参数使用。

祝学习愉快~

  • 提问者 慕尼黑5122342 #1
    then方法默认返回的Promise实例,是不是类似下面的实例 new Promise(resolve=>{ resolve(); })
    2020-03-26 19:41:21
好帮手慕糖 2020-03-26 09:58:17

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

1、Promise对象的then方法中可以接收上一个方法中return返回的结果。

2、所以这里的res(then中的参数),是createAsyncTask中的返回值,即:return 1+1;

祝学习愉快~


  • 提问者 慕尼黑5122342 #1
    then方法中的返回值return有什么作用。怎么一会返回数值给参数res,一会又返回一个promise实例? function f() { return new Promise(resolve => { setTimeout(function() { resolve(); }, 1000); }) } f() .then(function() { console.log(1); return f(); }) .then(function() { console.log(2); return f(); })
    2020-03-26 17:51:38
好帮手慕糖 2020-03-25 18:49:42

同学你好,因为then中默认返回是要一个promise对象。所以then方法是可以连续使用的。

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

  • 提问者 慕尼黑5122342 #1
    那return 1 + 1;怎么传给res的?res是接收resolve(1+1)传递过来的值吧?
    2020-03-25 19:17:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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