可观察 - http服务的debounceTime不起作用 - Angular

时间:2017-02-22 10:48:27

标签: angular typescript rxjs

只是一个简单的问题,但我无法使其发挥作用:(如何将debounceTime与http服务相结合?

所以我有我的通用服务:

/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+(?!\.c).{2}@mobily\.com\.sa$/i

我正在调用这样的服务:

public getAll(): Observable<T[]> {
        return this._http.get(this.url, { headers: this.headers })
            .map(this.extractAll)
            .catch((err) => { return this.extractAllError(err, this._alertService); });
}

但它不会等待我5秒钟来检索数据,它只是立即。

我已尝试使用this._myService.getAll().debounceTime(5000).subscribe((data) => { debugger; this.data = data; }); ,但结果相同。

提前致谢;)

2 个答案:

答案 0 :(得分:2)

debounceTime不应该用于你在这里尝试做的事情。来自docs

  

丢弃小于输出

之间指定时间的发射值

我认为你要找的是delay

  

按给定时间延迟发射值。

答案 1 :(得分:0)

我认为debounceTime是一种控制背压的方法。这意味着如果请求被大量执行,那么当没有任何内容被推送时,您将只获得一个新值。

也许throttleTime是您正在寻找的? https://www.learnrxjs.io/operators/filtering/throttletime.html