如果花费的时间太长,我想忽略来自API的响应。我使用
this.http.get(mysqlUrl).subscribe()以获取响应。但如果完成订阅的时间超过5秒,我想取消订阅。我知道我可以使用unsubscribe(),但我如何将其与超时值链接起来呢?
谢谢!
发布于 2017-05-17 22:10:17
一个普通的setTimeout应该可以工作:
let subscription = this.http.get(mysqlUrl).subscribe(...);
setTimeout(() => subscription.unsubscribe(), 5000);发布于 2017-05-17 22:13:28
您可以使用takeUntil运算符:
this.http.get(mysqlUrl)
.takeUntil(Observable.of(true).delay(5000))
.subscribe(...)发布于 2017-05-17 22:17:12
import 'rxjs/add/operator/timeout
this.http.get(mysqlUrl)
.timeout(5000)
.subscribe()https://stackoverflow.com/questions/44027199
复制相似问题