Это похоже на странное требование для задачи JS, и я думаю, что вам лучше заняться созданием задачи Cron для этого. Но для примера вот как вы можете это сделать:
import { of, Observable, timer, EMPTY } from "rxjs";
import { map, filter, timestamp, switchMap } from "rxjs/operators";
type Hour = number;
type Minutes = number;
const atTimes = (times: [Hour, Minutes][]): Observable<[Hour, Minutes]> =>
timer(0, 1000 * 60).pipe(
switchMap(() => {
const date: Date = new Date();
const [currentHour, currentMinutes] = [
date.getHours(),
date.getMinutes()
];
const time = times.find(
([hour, minutes]) => hour === currentHour && minutes === currentMinutes
);
if (!time) {
return EMPTY;
}
return of(time);
})
);
atTimes([[11,48]]).subscribe(x => console.log(x));
Демонстрация в реальном времени: https://stackblitz.com/edit/rxjs-sxxe41
PS: я предположил, что обновление не нужно запускать, как только начинается новая минута. Если это так, то таймер должен отмечаться каждую секунду, и вы должны использовать отдельныйUntilChanged для текущего часа / минут, чтобы дождаться, пока они не станут разными.