Angular 6 / RxJS如何使用takeUntil()和路由参数取消订阅

时间:2019-04-03 17:45:27

标签: angular typescript rxjs

我需要做一些我觉得太棘手的事情。我正在尝试使用Subscription退订takeUntil,并等待路由参数发出更改。

这是棘手的部分:我需要在路由参数takeUntil中设置subscribe。应该是这样的:

ngOnInit(): void {
    this.route.params.subscribe(params => {
        this.autoMethodSubscription = interval(5000).pipe(takeUntil(this.route.params)).subscribe(() => { this.autoMethod(); });
    });
}

autoMethodSubscription无法正常工作,因为我认为它无法取消订阅。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以# Custom log format that also includes the host that processed the request log_format logstash '$remote_addr - $remote_user [$time_local] "$host" ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; # Send logs to Logstash access_log syslog:server=logstash:5140,tag=nginx_access logstash; error_log syslog:server=logstash:5140,tag=nginx_error notice; 的第一个。

skip

或者您可以interval(5000).pipe( takeUntil( this.route.params .pipe(skip(1)) )).subscribe(() => //... 进行filter更改以指定哪种路线更改将强制取消订阅。

或者您可以使用最常见的模式,即在销毁时退订。

您的目标到底是什么?