I had the same question but then I figured out that I actually don't care if someone subscribes to the observable. I just want the POST request sent in any case. This is what I came up with:
postItem(itemData) {
var observable = this.http.post('/api/items', itemData)
.map(response => response.json()) // in case you care about returned json
.publishReplay(); // would be .publish().replay() in RxJS < v5 I guess
observable.connect();
return observable;
}
The request is sent as soon as connect()
is called. However, there is still an observable that the caller of postItem
can subscribe to if required. Since publishReplay()
is used instead of just publish()
, subscribing is possible even after the POST request completed.
2oppin
has showed below that you actually can do it, so the statementI do not think you can.
is wrong. – Picayune