LandSharks
LandSharks

Reputation: 437

Mimic a HTTP Observable return with subject

I have created an angular 4 service that currently uses an HTTP request to return an Observable of type Comment.

  return this.http.post(targetUrl, JSON.stringify({ 'Text': comment.Text, 'ThreadId': threadId }), options)
    .map(this.extractData)
    .catch(this.handleError);

I want this service to return a local data I constructed into a variable when I am on a local host. However, I am unable to just return my local variable of type comment since it is not an Observable. How do I go about making this local variable into an observable?

Upvotes: 0

Views: 1271

Answers (1)

Omri L
Omri L

Reputation: 769

Just pass in your variable as an argument to Observable.of method. It will return an observable.

*You can accomplish the same with Subject, but I don't see why you would use one in this scenario. Anyway,

var subject = new Subject();
subject.next(variable);
subject.asObservable();

Rx.Observable.of(...args) Converts arguments to an observable sequence.

https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/of.md

Upvotes: 1

Related Questions