我们都在为我们的应用程序使用拦截器。但是因为我使用它,我不理解请求的retunr声明&拦截器内的响应方法:
返回配置|| $ q.when(配置);
据我了解,如果配置对象未定义,该方法将在promise API的when方法中返回配置包,因为我们不知道它是否是一个承诺。我觉得这没关系。
但我的问题是如何在请求中获取未定义的配置对象?
你回复的帖子
答案 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(配置)强>