如何在Polymer中中止core-ajax

时间:2014-09-25 12:56:22

标签: javascript ajax polymer

说我有一个core-ajax元素配置如下:

<core-ajax url='/api/endpoint' response='{{handler}}'></core-ajax>

说我碰巧以高于反向响应时间的频率命中API。

如何确保handler仅在上次调用api时触发,无论返回顺序如何?基本上当我打个新电话时,我想忽略之前还没有回来的所有电话。

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是使用job()推迟工作:

this.responseChanged = function(){   this.job('job1',function(){// first arg是“job”的名称     ...   },100); //延迟回调100ms。如果再次调用responseChanged(),那么将在100毫秒后再调用......等等。 }

文档:http://www.polymer-project.org/docs/polymer/polymer.html#job

  

您可以在超时前重复调用它,但它只会产生一个副作用。换句话说,如果responseChanged()在250ms后立即执行,则其回调将在750ms后才会执行。