Во-первых, здесь так много всего неправильного.
Вы звоните по подписке, и она не отписывается. Вы хотите отменить подписку, и вы хотите очистить интервал. Если подписка не очищена, она продолжит получать информацию и будет повторять ее. Таким образом, putPrimaryPumpData будет вызываться при каждом запуске подписки. Который может завершиться при многократном запуске одновременно.
Сделайте что-то вроде:
let sub = this.api.getFirstChillerData()
.subscribe((first_data:any) => {
sub.unsubscribe();
this.first_api_data = first_data;
console.log(this.first_api_data)
this.putPrimaryPumpData();
});
Теперь это не будет создавать как 100 из 1000 циклов. Во-вторых, вы можете использовать ngOnDestroy как:
ngOnDestroy() {
clearInterval(this.intervalId);
}