Как правильно использовать asyncScheduler, чтобы узнать, что данные были обработаны в rxjs?

#rxjs

Вопрос:

У меня есть такой базовый код, как этот:

 this.events$
      .pipe(
        observeOn(asyncScheduler),
        ...
      ).subscribe(anotherObservable$);
 

Это прекрасно работает в моем приложении, но у меня возникла забавная проблема с модульным тестом. Я поставил пару отладочных консолей, подобных этой:

     this.events$
      .pipe()
      .subscribe(console.log.bind(null, 'sanity check inside without async'));
    this.events$
      .pipe(observeOn(asyncScheduler))
      .subscribe(console.log.bind(null, 'sanity check inside with async'));
 

Если я сделаю from(events).subscribe(events$); это в своем тесте, появится журнал «без асинхронности».

Если я это сделаю scheduled(events, asyncScheduler).subscribe(events$); , ничего не сработает.

Кажется, я не могу подделать ввод, чтобы запустить свой канал в асинхронном планировщике. Моему тесту просто нужно, чтобы эта труба сработала, чтобы увидеть, что что-то было вызвано.

Ответ №1:

Понял сразу после публикации:

 scheduled(events, asyncScheduler).subscribe(events$);
await lastValueFrom(events$)