У меня есть код Angular 7. Я хочу, чтобы показать картинки в определенное время inrerval один за другим.
image1: будет работать от 0 до 5000 секунд
image2: будет работать от 5000 секунд до следующих 3000 секунд
после image2 таймер финш; Я откажусь от подписки.
JSON выглядит так:
{
'animations': [{'gifUrl':'abc.gif'}, {'gifUrl':'xyz.gif'}]
}
Подписка vriable объявлена как
animationSubscription: Subscription[] = [];
Я использовал цикл для итерации по массиву JSON, а затем таймер RXJS для подписки каждого таймера изображения.
for (let i = 0; i < animations.length; i++) {
this.playAnmiation(animations[i],i);
}
и логика воспроизведения анимации равна
playAnmiation(animation,i){
this.animationSubscription[i]= timer(0 , 5000).pipe(takeUntil(this.unsubscribe))..subscribe(
(value: number) => {
this.imageUrl=animation.gifUrl;
this.animationSubscription[i].unsubscribe();
})
}
Он работает правильно, но последняя подписка продолжает работать.
Есть ли способ показать изображения по таймеру?