异步执行存在疑问2-15

异步执行存在疑问2-15

异步转同步方法存在疑问,请问老师

在creatasyncTask()这个方法中,.then是应该怎么理解呢?

输出的console。log(‘我变成异步操作’)是异步吗?

console.log(res) 是在  输出我变成异步操作之后 再输出的吗?

正在回答

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

2回答

同学你好,前面理解的对:第一次异步执行,输出的是‘我是异步任务'和一个返回值;then(输出res)是第二次异步执行的结果。

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

好帮手慕星星 2019-11-24 15:07:53

同学你好,问题解答如下:

看一下Promise.resolve(value)的作用:该方法返回一个以给定值解析后的Promise 对象。如果该值为promise,返回这个promise;如果这个值是thenable(即带有"then" 方法)),返回的promise会“跟随”这个thenable的对象,采用它的最终状态;否则返回的promise将以此值完成。

1、在creatasyncTask()方法中,.then里面是为了调用传入的方法。如果不在then中调用,那么输出res的时候就是传入的这个方法:

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

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

2、console.log(‘我变成异步操作’)是异步输出的,不能说这个语句是异步的,因为promise是异步执行的。

3、console.log(res) 是在 输出‘我变成异步操作之后’ 再输出的,从控制台中就能看出来:

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

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

  • 提问者 慕前端2064318 #1
    是不是是说第一次异步执行,速出的是我是异步任务,和一个返回值,。then(输出res)是第二次异步执行的结果? 2/还是说,函数createAsynTask执行的时候,(箭头函数(...)。then()) 他们是一个整体的参数?同时异步执行的结果,只是先输出文字,输出数字?
    2019-11-24 20:57:16
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
热门框架Vue开发WebApp 18版
  • 参与学习           人
  • 提交作业       209    份
  • 解答问题       3299    个

本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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