理解AngularJS的请求拦截器中的return语句

时间:2014-04-18 10:15:16

标签: angularjs

我们都在为我们的应用程序使用拦截器。但是因为我使用它,我不理解请求的retunr声明&拦截器内的响应方法:

  

返回配置|| $ q.when(配置);

据我了解,如果配置对象未定义,该方法将在promise API的when方法中返回配置包,因为我们不知道它是否是一个承诺。我觉得这没关系。

但我的问题是如何在请求中获取未定义的配置对象?

你回复的帖子

2 个答案:

答案 0 :(得分:0)

首先,我不认为公共API允许您传入虚假配置。您可以拨打$http(null),但这会抛出TypeError: Cannot read property 'headers' of null

但是,我也不了解|| when的目的。如果调用$q.when(config),则表示config是假的。因此,拦截器返回一个解析为null的promise。为什么不返回null

答案 1 :(得分:0)

来自文档:

  

该功能可以自由修改配置或创建新配置。该函数需要直接返回配置或作为承诺

如果拦截器1返回undefined,则拦截器2将获得未定义的配置。

但这并不能解释声明,因为我们仍然没有有效配置(带标题等)。所以它不是“真正的”代码,而是来自文档的声明:

  

直接返回配置= 返回配置或作为promise = || $ q.when(配置)