首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular 2-超时后取消订阅

Angular 2-超时后取消订阅
EN

Stack Overflow用户
提问于 2017-05-17 22:06:46
回答 3查看 12.6K关注 0票数 2

如果花费的时间太长,我想忽略来自API的响应。我使用

代码语言:javascript
复制
this.http.get(mysqlUrl).subscribe()

以获取响应。但如果完成订阅的时间超过5秒,我想取消订阅。我知道我可以使用unsubscribe(),但我如何将其与超时值链接起来呢?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-17 22:10:17

一个普通的setTimeout应该可以工作:

代码语言:javascript
复制
let subscription = this.http.get(mysqlUrl).subscribe(...);

setTimeout(() => subscription.unsubscribe(), 5000);
票数 9
EN

Stack Overflow用户

发布于 2017-05-17 22:13:28

您可以使用takeUntil运算符:

代码语言:javascript
复制
this.http.get(mysqlUrl)
    .takeUntil(Observable.of(true).delay(5000))
    .subscribe(...)
票数 10
EN

Stack Overflow用户

发布于 2017-05-17 22:17:12

import 'rxjs/add/operator/timeout

代码语言:javascript
复制
this.http.get(mysqlUrl)
    .timeout(5000)
    .subscribe()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44027199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档