Angular2 http.post setTimeout

时间:2017-06-29 15:37:38

标签: angular ionic2 settimeout

我有一个离子范围(单选按钮),我获取数据并推送它,以便我可以在mongodb中搜索该数据并将其响应给客户端。但是每当用户拖动它时(不立即离开它) )它需要所有数据并在mongodb上搜索n次,以便它变得更慢。我想要做的是设置一个setTime,以便在大约1秒后用户放下按钮它将发送数据,而不是瞬时

HTML

  <ion-range min="0" max="200" pin="true" [(ngModel)]="distance" color="secondary" (ngModelChange)="Change()">
    <i class="fa fa-map-marker" range-left aria-hidden="true"></i>
    <i class="fa fa-map-marker" style="font-size:25px;" range-right aria-hidden="true"></i>

  </ion-range>

TS

Change() {
var data = {
  distance: this.distance,
  lat: this.lat1,
  long: this.long1
}

this.http.post('http://localhost:xxxx/api/xxx', data)
  .map(res => res.json())
  .subscribe(data => {
    this.distanceArray = data;
  })


}

我想在}和之间我需要把setTimeint但我从来没用过它。你的想法是什么。

谢谢

1 个答案:

答案 0 :(得分:0)

ion-range的输入属性debounce

  

等待触发ionChange事件的时间(以毫秒为单位)   每次更改范围值后。默认为0.

Ionic Range API documentation

我强烈建议您使用服务,而不是直接从组件发出http请求。

修改

debounceionChange一起使用,而不是ngModelChange

<ion-range min="0" max="200" pin="true" debounce="1000" [(ngModel)]="distance" color="secondary" (ionChange)="Change($event)">
.......
</ion-range>