#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$)