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()”方法时更新订阅数据的目的。

相关内容

热门资讯

教程辅助!手游蛮王辅助,崇阳斗... 教程辅助!手游蛮王辅助,崇阳斗棋bug,详细插件(有挂规律)1、手游蛮王辅助辅助器安装包、手游蛮王辅...
黑科技教程!约局吧德州透视,德... 黑科技教程!约局吧德州透视,德扑圈有透视吗,一贯真的是有挂(真是有挂)一、德扑圈有透视吗可以开透视的...
盘点几款!科乐辅助工作室,透视... 盘点几款!科乐辅助工作室,透视盒子,详细技巧(真的有挂)进入游戏-大厅左侧-新手福利-激活码辅助透视...
连日来!aapoker辅助怎么... 连日来!aapoker辅助怎么用,德扑圈透视,其实是有挂(有挂教学)1、金币登录送、破产送、升级送、...
一分钟揭秘!四川途游小程序辅助... 一分钟揭秘!四川途游小程序辅助,雀神广东插件智能解码,详细app(有挂总结)1、很好的工具软件,可以...
最新消息!wepoker有辅助... 最新消息!wepoker有辅助吗,德扑之心免费透视,原来真的有挂(有挂方法)1、玩家可以在德扑之心免...
总算了解!福建兄弟十三水挂件去... 总算了解!福建兄弟十三水挂件去那买,凑一桌小程序辅助器,详细脚本(有挂方法)1)福建兄弟十三水挂件去...
黑科技辅助挂!wepoker俱... 您好,德扑之星有辅助软件吗这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很...
我来教大家!途游手游辅助,小闲... 我来教大家!途游手游辅助,小闲川南怎么辅助,详细脚本(有挂总结)1、超多福利:超高返利,海量正版游戏...
不少玩家反映!wepoker透... 不少玩家反映!wepoker透视脚本安卓,德扑圈有透视吗,本来是有挂(揭秘有挂)1、德扑圈有透视吗有...