对axios发送异步请求有些疑问

对axios发送异步请求有些疑问

老师,你好,第一个问题:就是在学习axios发送异步请求的时候,resolve和reject都是干嘛用的,是不是一个代表着数据返回成功,一个代表着数据返回失效呢?

这是不是就是所谓的什么全局拦截?

然后我理解的是之后的.then里面放的是请求成功的回调,也就是收到成功之后,在这里进行对成功的操作处理,而.catch里面放的是对失败的一个报错信息提示确定了位置以便可以精准的查看,不知道我这里理解的是否正确?

第二个问题:我看文档也好,项目也好,在发送axios请求的时候,并没有用到所谓的resolve和reject呀,仅仅用的是.then与.catch了

之后我找到一篇说明的文章,不知道是不是跟这个有关系,是不是这是两种写法,哪一种都可以呢?可以这样理解的吗?

文章是这样说明的:

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

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


第三个问题:现在JavaScript语法更新到多少了,为什么现在的公司依旧用ES6呢,我看也出来什么7 8的,是 7 8的功能不完善,不流行了吗?要不要学呢?




正在回答

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

5回答

同学你好,这里的promise是异步操作,可以回去复习一下相关课程:https://class.imooc.com/lesson/817#mid=20426

它和axios是有关联的,但并不是一回事,要区分开,如上一条回复中所说:

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

在发起异步请求的时候用到promise。

关于面向对象问题,什么时候都可以用,简单理解就是当你有两个对象需要实现同样的功能的时候,就可以使用面向对象的方法,简化代码书写。

同学不知道什么时候用,是因为同学自己思考练习的少,编程最重要的还是需要自己多动手,多动脑思考,才可以真正的理解掌握。在实际工作中,完全可以观察下其他人是怎么写的,要适应项目开发习惯。

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

  • 看不穿繁华 提问者 #1
    好的,非常感谢老师
    2019-11-12 09:01:49
好帮手慕码 2019-11-08 15:14:45

同学你好,针对同学的问题做如下解答:

  1. 是否需要promise再配合axios请求接口要看实际开发的项目需求和开发者的习惯。用不用都是可以的;

  2. promise确实有一些好处,不过主要是针对我们编程者,比如说解决了地狱回调(嵌套很多层的回调函数),增加的代码的可读性和维护性

如果同学有其他问题的话,建议新建问题,这样便于同学后期复习时候对问题的定位。

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

  • 提问者 看不穿繁华 #1
    1.这块儿理解的有点误区,这个回调函数本身是属于同步的还是异步的呢? 像老师之前举的网络延迟的例子,感觉上就是异步的操作啊 但是axios不也是一个异步的处理吗? 它俩毫无关联性的吗?有点懵,总感觉它俩是一回事情 2.还有一个问题,也是困扰很久了,就是面向对象的问题,不知道什么时候用,上面说的也是,它是一种思想,使得代码变得更优雅,简洁,但是确实不知道什么时候用?而且工作中用处多不多?是不是在创建一个对象的时候注意一下呢?
    2019-11-08 15:53:53
好帮手慕码 2019-11-08 10:10:00

同学你好,针对你的提问做如下解答:

  1. resolve和reject是promise里的方法,属于promise。但是在axios中也可以用,因为axios是基于promise实现的。

  2. promise是来获取异步操作的消息,例如如下场景:我们像我们发出请求调用服务器数据,由于网络延时原因,我们此时无法调用到数据,我们可以接着执行其它任务,等到将来某个时间节点服务器响应数据到达客户端,我们即可使用promise自带的一个回调函数来处理数据。

  3. 对,在vue中,如果发送请求的话,可以使用axios。

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

  • 提问者 看不穿繁华 #1
    那老师,我是不是可以这样理解呢?就是一般公司在做项目时是不是都要加上promise 在配合axios来发送请求的呢?是这样吗?因为公司的项目是上线给用户的,是不是加上promise之后,对客户端也是有好处的?
    2019-11-08 10:31:07
提问者 看不穿繁华 2019-11-08 08:06:44

也就是说resolve和reject并不是axiis异步请求里的东西吗?

它属于promise对象的东西对吗?

一般什么情况下会使用到它呢?

想后端发送请求的话,是不是axios就可以了?

好帮手慕码 2019-11-07 17:41:53

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

1.resolve和reject是promise中的两个方法,resolve作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

这个不是全局拦截哦,全局拦截是统一的进行判断请求接口,现在我们学习阶段还涉及不到,同学这里做简单了解即可。

另,对于catch和then的理解是正确的,如下。

2.axios对象中,.then()成功回调,.catch()失败回调,常用写法如下:

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

如果有需要和promise结合的话,写法如下:

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

同学要区分开着两个,不要混淆;

3.是的,大致上已经出到9~10了,更新迭代是比较快的。因为有一些知识比较新,像同学说的不完善,熟悉掌握的人也不多,因此现在还是es6比较常用。如果同学有兴趣的话,可以了解下新知识哦~
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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