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、博雅玉溪棋牌公共底牌简单...
发现一款!微乐家乡麻将开挂脚本... 发现一款!微乐家乡麻将开挂脚本软件,微乐家乡麻将一贯是真的有开挂有挂app1、下载好微乐家乡麻将脚本...
玩家攻略推荐!打哈儿麻将透视脚... 玩家攻略推荐!打哈儿麻将透视脚本软件,打哈儿麻将一贯是真的有透视揭幕工具1、金币登录送、破产送、升级...
盘点一款!贵花麻将辅助器脚本软... 盘点一款!贵花麻将辅助器脚本软件,贵花麻将都是是真的有辅助器揭露攻略1、贵花麻将免费脚本咨询教程、贵...
重大通报!温州茶苑开挂脚本软件... 重大通报!温州茶苑开挂脚本软件,温州茶苑竟然是真的有开挂推荐脚本1、该软件可以轻松地帮助玩家将温州茶...
传递经验!君澜娱乐开挂脚本软件... 传递经验!君澜娱乐开挂脚本软件,君澜娱乐好像是有开挂详细工具传递经验!君澜娱乐开挂脚本软件,君澜娱乐...
一分钟了解!乐乐麻将透视脚本软... 一分钟了解!乐乐麻将透视脚本软件,乐乐麻将确实存在有透视专业工具乐乐麻将透视方法中分为三种模型:乐乐...
玩家必看科普!圣盛晃晃麻将开挂... 玩家必看科普!圣盛晃晃麻将开挂脚本软件,圣盛晃晃麻将其实是真的有开挂教你技巧一、圣盛晃晃麻将可以开透...