如何取消订阅带有类型记录中条件的订阅。
我在Angular4中订阅了一个Angular4方法,现在我想在从服务器收到"no_more_data“之后取消订阅。请让我知道怎么做。
我所知道的所有方法,如外卖,外卖等,在这个可观察的地方都是不可用的。
getFiles(): any {
return http.post
}
getFiles(). // here no takeWhile and takeUntil are getring allowed then how do I unsubscribe.
发布于 2017-11-05 11:53:07
这里有几件事:
首先,可以观察到的Http以角表示,它发出单个Http请求,因此,如果它只是一个Http调用,则无需取消订阅,除非您是从其他重复的东西中触发它。
第二,您提到的部分,return http.post
显然是不完整的。我不知道这是为了在问题中张贴,还是你真正的代码是这样的。您的问题可能是返回函数http.post
而不是调用它。
检查实际代码1)是否调用方法http.post( /*some arguments here /*)
,当然,2)返回该调用的结果。悬停在调用http.post()
的方法上,以确保返回类型是Observable
。
最后,如果您仍然无法找到takeWhile
或takeUntil
,另一个潜在的小问题是它可能根本不被导入。您可能需要在使用import 'rxjs/add/operator/takeWhile
的文件的开头添加或‘’rxjs/ add /operator/takeUntil。
发布于 2017-11-04 16:41:48
您可以使用takeWhile
操作符使流在"no_more_data"
到达时自动关闭:
$http.get(...)
.map(...)
.takeWhile((e) => e != "no_more_data")
.subscribe(...)
https://stackoverflow.com/questions/47112852
复制相似问题