Rx js поток застрял неизбежно в некоторых случаях - PullRequest
0 голосов
/ 01 марта 2020

Я новичок в ngrx. У меня есть electron проект. В некоторых случаях значения в хранилище обновлялись, как показано в redux dev-tool. Но моя подписка на значения из магазина не сработала и вызвала некоторые эффекты пользовательского интерфейса, которые выявили эту проблему.

Мы используем angular, но я не думаю, что это имеет значение. Я столкнулся с подобной проблемой с Subject и решил ее, выдав данные в SetTimeout (0). Я не могу изменить процесс выдачи значений Observable, но могу подписаться только из магазина. Тот, кто даст подсказку, будет признателен.

mySubject.next(true) // oops, it delayed and looks like stuck
SetTimeout(() => mySubject.next(true))  // this done the job and everythings looks like normal. But why?

this.store
  .select(getSome)
  .pipe(withLastestFrom(this.store.select(getAnother)), ...)
  .subscribe(x => 
    console.err(`${JSON.stringfy(x)}`
  )

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

...