Observable.of 在 HttpClient 拦截器中没有按预期工作

Observable.of does not work as expected in HttpClient Interceptor

问题

Observable.of 将参数转换为可观察序列意味着它可以用作对另一个订阅的 Observable 的模拟响应。 但是现在,似乎 Observable.of 从拦截器调用时不起作用,因为订阅它的方法不会执行

预期行为:

当使用给定的数据调用 Observable.of 时,HttpClient 应该 return 数据到已经订阅它的方法

演示

Live Demo(打开DevTools控制台读取日志)

有一项服务 (mock.service.ts) 使用 HttpClient 发出模拟 HTTP get 请求,请求到达 mock.interceptor.ts 并且它想要使用 [=回答模拟数据=11=](表示不想让请求通过网络),mock.serviceapp.component 中有一个订阅者正在等待 HttpClient 的响应。没有数据到达订阅者,也没有错误。

知道如何实现与 Observable.of 一起使用的拦截器吗?

尝试将拦截器拦截方法中的return语句改为:

return Observable.of( new HttpResponse<any>( { body: mockData }))

Live Demo

Observable.of 已弃用,请改用 Observable.create

return Observable.create((ob) => {
      ob.next(new HttpResponse<any>({body: data}));
});