如何使用 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 请求所期望的内容。
但是无论如何,看看你的例子,这样的东西也行得通:
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
我想在 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 请求所期望的内容。
但是无论如何,看看你的例子,这样的东西也行得通:
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