如何使用 rxjs 模拟 get 调用

How to simulate a get call using rxjs

我想在 angular 中模拟 get 响应,但没有实际进行 httpClient.get 调用。我尝试了管道 setInterval 和间隔,但 none 有效,因为这不是要遵循的正确路径。 setInterval 不被认为是强制性的 return 任何东西,所以 angular 抱怨。 interval() 方法也是许多可观察值的生成器,所以也不是我想要的。我只需要一个电话。我如何将 get 响应模拟为可观察的?这是调用代码中的代码(调用可观察管道过程的代码):

this.order.pipe(

      tap((order) => {
        console.log('order for user', order.id);
      }),
      map((a) => {
        return this.durumService.makeDurum();
      }),
      mergeMap((o) => {
        return o;

      })
    ).subscribe(() => console.log);

这是我想调整为只进行假get调用的服务中的方法(但我仍然没有成功):

makeDurum(): Observable<number> {
    setInterval(() => {
      return of(7);
    }, 1000);
  }

我建议使用任何模拟 API 来模拟请求。好处是您实际上可以配置 return 一些数据,让您可以进一步测试所有 header 和正常 http 请求所期望的内容。

例如https://mockapi.io/docs

但是无论如何,看看你的例子,这样的东西也行得通:

type Post = { title: string, content: string };

import { Observable, of } from 'rxjs';
import { delay } from 'rxjs/operators';

const post:Observable<Post> = of( {title: 'Simulating HTTP Requsts', content: 'This is off the hook!!'}).pipe(delay(2000));

post.subscribe(console.log);

示例:https://stackblitz.com/edit/typescript-rxjs-request-simulation-vjvu6l?file=index.ts