承诺机制可以取代Angular中的事件系统吗?

Can promise mechanism replace event system in Angular

本文关键字:事件系统 Angular 机制 取代 承诺      更新时间:2023-09-26

我们都知道事件系统对于每一个流行的JavaScript框架都是非常重要的,许多著名的框架也提供了承诺机制,如Jquery, DoJo。

但是AngularJS很特别:

  1. 提供promise方法。
  2. 用JqLite为DOM元素提供事件方法,用$emit/$broadcast为$scope提供事件方法。Angular似乎建议在服务中使用watch。

我的问题是服务的数据模型是:

  1. 一个非常大的列表,所以很难看到
  2. 由许多其他控制器或指令共享,因此承诺似乎不够。

那么,我可以使用事件机制让服务广播其数据更改吗?或者还有其他更好的解决方案。

承诺机制能否取代事件系统

一般情况下,NO。每个定义的承诺只解析一次,之后不会改变它们的值。如果你想要发出多个事件,你不能使用promise(或者仅仅是非常不可行的)。