为什么使用 ngrx/effects 进行 http 异步调用



有很多文章建议使用 ngrx/effects 来处理异步操作,例如 http REST 调用。与其使用效果,为什么我们不能只使用常规服务进行 http 调用,然后获取该 http 调用的结果并调度操作?这不是简化事情吗?

您可以完美地使用常规服务,然后在组件上调度操作,就像这样。

this.store.dispatch({
   type: "SAVE_DATA",
   payload: data
});
this.saveData(data) // POST request to server
   .map(res => this.store.dispatch({type: "DATA_SAVED"}))
   .subscribe()

@ngrx/effect只是将此逻辑从组件中抽象出来。通过使用函数式编程aproach(纯函数(来做到这一点,代码仍然非常容易测试。

我真的建议阅读这篇文章,因为有很多解决方案可以解决滥用effects

发布

使用

ngrx/effects 比使用服务进行 http 调用,然后获取结果并调度操作更简单。如下

  1. 效果为服务层提供抽象。我们的组件不需要知道服务(http(层。组件只会调度操作来完成工作。

  2. 由于效果基本上是服务,因此代码编写一次并多次重用。

相关内容

  • 没有找到相关文章

最新更新