Angular的Http拦截器中的'next.handle”方法是否符合更新订阅到可观察对象?
创始人
2024-10-24 05:30:21
0次

根据Angular文档的介绍,在拦截器中使用'next.handle()”方法会返回一个可观察对象,而不是一个订阅对象。因此,拦截器中的订阅对象无法直接更新到调用'next.handle()”方法后返回的可观察对象中。要想实现这一功能,需要将订阅对象转换为可观察对象。

代码示例:

@Injectable() export class MyInterceptor implements HttpInterceptor { constructor(private authService: AuthService) {}

intercept( req: HttpRequest, next: HttpHandler ): Observable> { const authReq = req.clone({ headers: req.headers.set('Authorization', this.authService.getAuthHeaderValue()) });

const subscription = next.handle(authReq).subscribe(
  event => {
    if (event instanceof HttpResponse) {
      console.log('HttpResponse received.');
      // do something with received response
    }
  },
  err => {
    console.error('HttpError:', err);
  }
);

// convert Subscription to Observable
const obs = new Observable(subscriber => {
  subscriber.add(subscription);
});

return obs;

} }

在以上的代码示例中,我们创建了一个Observable对象'obs”,并将Subscription对象'subscription”添加到其中,然后'obs”作为最终返回的可观察对象返回。这样一来,我们就可以更新订阅器中的数据到'obs”中,从而实现在拦截器中使用'next.handle()”方法时更新订阅数据的目的。

相关内容

热门资讯

推荐几款新版!至友互娱透视功能... 推荐几款新版!至友互娱透视功能教程,至友互娱总是真的是有透视教程(有辅助挂神器)至友互娱是不是有人用...
最新技巧!河落杠次开挂功能方法... 最新技巧!河落杠次开挂功能方法,河落杠次果然有开挂方法(有辅助挂工具)1、超多福利:超高返利,海量正...
必备辅助推荐!大咖娱乐透视挂功... 必备辅助推荐!大咖娱乐透视挂功能工具,大咖娱乐一贯是有透视挂工具(有辅助挂规律)1、上手简单,内置详...
重大消息!中至上饶麻将透视挂功... 重大消息!中至上饶麻将透视挂功能插件,中至上饶麻将都是是真的有透视挂插件(有辅助挂实锤)中至上饶麻将...
实测分享!干瞪眼透视功能技巧,... 实测分享!干瞪眼透视功能技巧,干瞪眼总是是真的有透视技巧(有辅助挂头条)该软件可以轻松地帮助玩家将干...
总算明白!云龙干瞪眼雀牌辅助功... 总算明白!云龙干瞪眼雀牌辅助功能app,云龙干瞪眼雀牌好像是有辅助app(有辅助挂头条)云龙干瞪眼雀...
交流学习经验!乐天棋牌辅助功能... 交流学习经验!乐天棋牌辅助功能插件,乐天棋牌本来是真的有辅助插件(有辅助挂辅教程)1.乐天棋牌 选牌...
技术分享!红拐弯开挂功能教程,... 技术分享!红拐弯开挂功能教程,红拐弯总是真的有开挂教程(有辅助挂app)在进入红拐弯软件靠谱后,参与...
教程攻略!奇趣互娱辅助功能方法... 教程攻略!奇趣互娱辅助功能方法,奇趣互娱切实真的有辅助方法(详细教程辅助)一、奇趣互娱游戏安装教程牌...
今日头条!福麻圈开挂功能神器,... 今日头条!福麻圈开挂功能神器,福麻圈其实是真的有开挂神器(有辅助挂透视)进入游戏-大厅左侧-新手福利...