Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rxjs 无法从侦听器订阅数据_Rxjs_Angular6_Interceptor_Angular Httpclient_Rxjs6 - Fatal编程技术网

Rxjs 无法从侦听器订阅数据

Rxjs 无法从侦听器订阅数据,rxjs,angular6,interceptor,angular-httpclient,rxjs6,Rxjs,Angular6,Interceptor,Angular Httpclient,Rxjs6,在我的AppComponent.ts文件中,我使用HttpClient进行了一个HTTP GET调用 import { Component } from '@angular/core'; import { Observable, Subscriber, Unsubscribable } from 'rxjs'; import { HttpClient } from '@angular/common/http'; @Component({ selector: 'app-root', te

在我的
AppComponent.ts
文件中,我使用
HttpClient
进行了一个HTTP GET调用

import { Component } from '@angular/core';
import { Observable, Subscriber, Unsubscribable } from 'rxjs';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  ob: Observable<any> = null;

  constructor(private httpClient: HttpClient) {

    httpClient.get("").subscribe((response) => {
      console.log(response);
    });
  }
}
从'@angular/core'导入{Component};
从“rxjs”导入{可观察,订阅,不可订阅};
从'@angular/common/http'导入{HttpClient};
@组成部分({
选择器:'应用程序根',
templateUrl:“./app.component.html”,
样式URL:['./app.component.css']
})
导出类AppComponent{
标题=‘应用程序’;
ob:可观察=零;
构造函数(私有httpClient:httpClient){
httpClient.get(“”).subscribe((响应)=>{
控制台日志(响应);
});
}
}
然后我还有一个拦截器,它截取Http调用并返回一些静态数据(比如说缓存)

从“@angular/core”导入{Injectable};
从'@angular/common/http'导入{HttpEvent,HttpInterceptor,HttpHandler,HttpRequest};
从“rxjs”导入{可观察的};
@可注射()
导出类CustomHttpInterceptor实现HttpInterceptor{
截取(req:HttpRequest,next:HttpHandler):可观察{
归还({});
}
}
但是,
AppComponent.ts
文件中的订阅未收到任何响应。事实上,subscribe success or error函数甚至没有被命中。 也没有控制台错误。有人知道这是怎么回事吗

注意
我已将返回类型从
Observable
更改为
Observable
,因为TypeScript无法将
Observable
转换为
Observable
,缓存的响应需要是类型,但更准确地说,它需要是类型,其中包括类
HttpResponse

const response=新的HttpResponse({
正文:{},
现状:200
})
回复(回复);

不过,这有点未经测试,不确定body是否需要是可解析的json字符串才能正常工作:
body:“{}”
,但这需要您尝试。:)

太棒了。这件事把我逼到了最高层。我希望我能有机会给你买杯咖啡或啤酒:)@Sandy为什么不两样都买呢不管怎么说,我想你不必为身体制作一个可解析的json字符串,对吧?哈哈…是的…都在我身上。是的,主体可以是对象,它不需要是字符串。
import { Injectable } from "@angular/core";
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { Observable, of } from "rxjs";

@Injectable()
export class CustomHttpInterceptor implements HttpInterceptor {
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<any> {
        return of({});
    }
}
const response = new HttpResponse<object>({
  body: {},
  status: 200
})

return of(response);