在订阅者中进行API调用是否有任何缺点/注意事项?或者有一个解决这个问题的首选方法吗?一个例子:
this.store.select('person').subscribe(person => {
this.http.get(`/tasks/${person.id}`)
.map(res => res.json())
.subscribe(tasks => {
// Dispatch tasks.update
});
});
任何想法都将不胜感激。
汤姆
答案 0 :(得分:1)
我认为调用这样的HTTP方法不是一个好主意。
例如:
- 您的person
已更新
- HTTP请求被解雇
- 您发送操作以将更改保存到商店中
- 随着商店的更新,您将启动另一个HTTP请求
- 等等
你最终会在你的后端使用循环和DDOS。
而不是那样,你应该派遣一个动作FETCH_PERSON
,用Effect捕获它,一旦你在效果中得到响应,就根据响应发出另一个动作(FETCH_PERSON_SUCCESS或FETCH_PERSON_ERROR for例子)。