【发布时间】:2019-07-23 00:05:28
【问题描述】:
我想要一个这样的系统->
- 组件请求ngrxstore制作api并订阅获取结果
- 我的 ngrxstore 进行 api 调用并订阅它以获得结果
- 我的服务执行 api 调用并返回一个每个人都可以观察到的 observable
这里是当前的实现
组件 =>
public CardMoved(){
const params:load_item_params = {}
let subscription = this._itemDetailsService.LoadItem(params).subscribe(data => {
subscription.unsubscribe();
});
}
NGRX 商店 =>
LoadItem(params:API_TYPE.load_item_params) : Observable<any> {
let observable$ = this._http.Post(UtilsService.apiServer + '/load_item', params);
return observable$.pipe(
map((data) => {
return data;
}),
)
}
HTTP 服务 =>
public Post<T>(url: string, payload: any): Observable<T>;
public Post<T>(url, payload): Observable<T> {
return this.http.post<T>(url, payload, httpHeaders)
.pipe(
retry(MAX_RETRY)
)
}
一切看起来都很好,我遇到的问题是,如果我没有订阅我的组件中的偶数,则不会发送 http 调用。
我相信我仍然没有完全理解 observable 和所有的工作原理,而且我真的不明白为什么如果我不订阅它就不会进行 api 调用
【问题讨论】:
标签: angular observable