首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用角4中的条件禁止订阅

如何使用角4中的条件禁止订阅
EN

Stack Overflow用户
提问于 2017-11-04 16:25:10
回答 2查看 1.2K关注 0票数 1

如何取消订阅带有类型记录中条件的订阅。

我在Angular4中订阅了一个Angular4方法,现在我想在从服务器收到"no_more_data“之后取消订阅。请让我知道怎么做。

我所知道的所有方法,如外卖,外卖等,在这个可观察的地方都是不可用的。

代码语言:javascript
运行
复制
getFiles(): any {
    return http.post
}

getFiles(). // here no takeWhile and takeUntil are getring allowed then how do I unsubscribe.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-05 11:53:07

这里有几件事:

首先,可以观察到的Http以角表示,它发出单个Http请求,因此,如果它只是一个Http调用,则无需取消订阅,除非您是从其他重复的东西中触发它。

第二,您提到的部分,return http.post显然是不完整的。我不知道这是为了在问题中张贴,还是你真正的代码是这样的。您的问题可能是返回函数http.post而不是调用它。

检查实际代码1)是否调用方法http.post( /*some arguments here /*),当然,2)返回该调用的结果。悬停在调用http.post()的方法上,以确保返回类型是Observable

最后,如果您仍然无法找到takeWhiletakeUntil,另一个潜在的小问题是它可能根本不被导入。您可能需要在使用import 'rxjs/add/operator/takeWhile的文件的开头添加或‘’rxjs/ add /operator/takeUntil。

票数 0
EN

Stack Overflow用户

发布于 2017-11-04 16:41:48

您可以使用takeWhile操作符使流在"no_more_data"到达时自动关闭:

代码语言:javascript
运行
复制
$http.get(...)
.map(...)
.takeWhile((e) => e != "no_more_data")
.subscribe(...)

另见takeWhile

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47112852

复制
相关文章

相似问题

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