两次订阅相同的方法但具有不同的参数如何工作?

时间:2019-07-17 14:24:56

标签: angular observable

如果我使用类似以下两次的方法,一次使用“ a”作为columnSelector,一次使用“ b”作为columnSelector:

public getSomething(columnSelector: string): Observable<Something[]>

.subscribe()将如何处理?

它将了解哪个获取的对象属于getSomething(“ a”)。subscribe(),哪个属于getSomething(“ b”)。subscribe()“ stream”吗? 还是任何getSomething(“ x”)都将触发两个subscription()?

我尝试了此操作,但遇到一个奇怪的错误(我不确定这是否是由双重订阅引起的。)

2 个答案:

答案 0 :(得分:0)

类似this

getSomething(columnSelector: string) {
  this.configService.getConfig()
    // clone the data object, using its known Config shape
    .subscribe((data: Config) => {this.config = { ...data }
      this.config.columnSelector = columnSelector;
});
}

答案 1 :(得分:0)

您将必须进行两次订阅,并在订阅正文中决定要为每个获取的数据执行什么操作。

例如:

dataA: Something[];
this.getSomething(a).subscribe((fetchedData: Something[]) => dataA = [...fetchedData]);

dataB: Something[];
this.getSomething(b).subscribe((fetchedData: Something[]) => dataB = [...fetchedData]);