【发布时间】:2015-10-19 02:08:19
【问题描述】:
我构建了一个指令,该指令具有该点的属性。当承诺解决时,我想运行一个对数据做某事的函数。像这样:
scope.$watch('source', function (dataSource) {
if( !dataSource ) return ;
dataSource.then(function ( d ) {
dataToView( d );
});
});
但是有一个问题。 source 可以在很短的时间内多次更改,并且每次我将处理程序注册到当前承诺时。
例如,如果source 更改了 3 次,dataToView() 调用了 3 次!对于不再相关的承诺。
我真正想要的是在绑定到source 的承诺解决时调用dataToView()。
有人知道如何解决这个问题吗?
【问题讨论】:
-
你考虑过使用和吗?似乎您正试图以一种意想不到的方式使用 $watch。为什么不直接创建一个名为
setSource的函数来执行此操作?显示的概念没有多大意义。显示与此承诺相关的所有代码source由用户在某些过滤器中进行更改从外部更改。我需要 Promise 而不是实际的数据,因为我在用户等待数据的时候显示 loding 动画
标签: javascript angularjs promise watch