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)微乐卡五星祈福有用吗有没有挂...
据权威媒体报道!wepoker... 据权威媒体报道!wepoker私人局怎么玩,德普之星的辅助工具介绍,真是是真的有挂(有挂分析)1)德...
一分钟了解!决战卡五星辅助io... 一分钟了解!决战卡五星辅助ios,海商嘟咪互动辅助,详细技巧(有挂分享)1、游戏颠覆性的策略玩法,独...
反观!哈糖大菠萝有挂吗5个常用... 反观!哈糖大菠萝有挂吗5个常用方法,德普辅助软件,真是真的是有挂(有挂工具)1、打开软件启动之后找到...
今日科普!微乐家乡app下载,... 今日科普!微乐家乡app下载,微乐游戏辅助脚本安卓,详细方法(了解有挂)1、金币登录送、破产送、升级...
近期!哈糖大菠萝辅助器,德扑之... 近期!哈糖大菠萝辅助器,德扑之星辅助器怎么用,切实是真的有挂(有挂攻略)1)德扑之星辅助器怎么用辅助...
发现一款!凑一桌游戏关春天辅助... 发现一款!凑一桌游戏关春天辅助,红人阁自动挂机脚本,详细工具(确实有挂)1、下载好凑一桌游戏关春天辅...
黑科技辅助挂!xpoker辅助... 黑科技辅助挂!xpoker辅助,德普之星辅助器app,确实确实有挂(有挂功能)1、让任何用户在无需德...
一分钟揭秘!赣南好友辅助,微乐... 一分钟揭秘!赣南好友辅助,微乐小程序晃晃脚本,详细挂(有挂秘笈)1、进入游戏-大厅左侧-新手福利-激...