如何创建一个可观察到从静态数据类似于HTTP之一角2 [英] How to create an Observable from static data similar to http one in Angular 2
本文介绍了如何创建一个可观察到从静态数据类似于HTTP之一角2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有具有此方法的服务:
I am having a service that has this method:
export class TestModelService {
public testModel: TestModel;
constructor( @Inject(Http) public http: Http) {
}
public fetchModel(uuid: string = undefined): Observable<string> {
if(!uuid) {
//return Observable of JSON.stringify(new TestModel());
}
else {
return this.http.get("http://localhost:8080/myapp/api/model/" + uuid)
.map(res => res.text());
}
}
}
在组件的构造我预订是这样的:
in the component's constructor I am subscribing like this:
export class MyComponent {
testModel: TestModel;
testModelService: TestModelService;
constructor(@Inject(TestModelService) testModelService) {
this.testModelService = testModelService;
testService.fetchModel("29f4fddc-155a-4f26-9db6-5a431ecd5d44").subscribe(
data => { this.testModel = FactModel.fromJson(JSON.parse(data)); },
err => console.log(err)
);
}
}
这工作,如果一个对象来自server..but我想创建一个可观察的,将与给定现有的订阅()调用一个静态的字符串的工作(这发生在 testModelService。 fetchModel()
没有给出一个UUID)因此在这两种情况下的无缝处理。这可能吗?
This works if an object comes from the server..but I am trying to create an observable that will work with the given the existing subscribe() call for a static string (this happens when testModelService.fetchModel()
isn't given a uuid) so there is seamless handling in both cases. Is this possible?
任何帮助AP preciated!谢谢!
Any help is appreciated! Thanks!
推荐答案
Perhaps you could try to use the of
method of the Obserable
class:
public fetchModel(uuid: string = undefined): Observable<string> {
if(!uuid) {
return Observable.of(new TestModel()).map(o => JSON.stringify(o));
}
else {
return this.http.get("http://localhost:8080/myapp/api/model/" + uuid)
.map(res => res.text());
}
}
这篇关于如何创建一个可观察到从静态数据类似于HTTP之一角2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文