ngrx订阅者内部的API调用

时间:2016-12-21 00:28:33

标签: javascript angularjs angular ngrx

在订阅者中进行API调用是否有任何缺点/注意事项?或者有一个解决这个问题的首选方法吗?一个例子:

this.store.select('person').subscribe(person => {
    this.http.get(`/tasks/${person.id}`)
        .map(res => res.json())
        .subscribe(tasks => {
            // Dispatch tasks.update
        });
});

任何想法都将不胜感激。

汤姆

1 个答案:

答案 0 :(得分:1)

我认为调用这样的HTTP方法不是一个好主意。

例如:
  - 您的person已更新   - HTTP请求被解雇
  - 您发送操作以将更改保存到商店中   - 随着商店的更新,您将启动另一个HTTP请求   - 等等

你最终会在你的后端使用循环和DDOS。

而不是那样,你应该派遣一个动作FETCH_PERSON,用Effect捕获它,一旦你在效果中得到响应,就根据响应发出另一个动作(FETCH_PERSON_SUCCESS或FETCH_PERSON_ERROR for例子)。