Я не вижу, куда Вы сбрасываете массив this.dailyForecast
.
Поэтому, чтобы избежать мерцания (повторного рендеринга), пока Вы делаете this.dailyForecast = [];
перед вызовом службы.
I рекомендуем получить данные, сопоставить их и сразу установить this.dailyForecast
.
. Попробуйте:
setForecast(unit: any, scaleTemp: any) {
this.weatherService.getLocation().subscribe(data => {
const body = JSON.parse(data['_body']);
this.lat = body.latitude;
this.lon = body.longitude;
this
.weatherService
.sixDayForecast(this.lat, this.lon)
.subscribe(res => {
res.daily.data.shift();
res.daily.data.pop();
this.dailyForecast = res.daily.data.map(dailyData =>
new DailyForecast(
dailyData.summary,
dailyData.temperatureMax.toFixed(0) + scaleTemp,
dailyData.time * 1000,
dailyData.icon
)
);
});
});
}