Блог Михаила Крамера. PHP и JS

Тригерить перерисовку с любого Observable

Если Observable не связан с обращением к серверу или событием в браузер, при его срабатывании Angular не перерисовывает контент. Что делать, чтоб не химичить с зоной?

Оказывается, достаточно переключить Observable на разрешённый промис с помощью Promise.resolve:

@Injectable({
  providedIn: 'root'
})
class SomeService {
   doSomething(): OBservable<numeric> {
      return this.someCallReturnsObservable().pipe(
         /* Some actions */,
         switchMap((a: numeric) => Promise.resolve(a))
      )
   }
}

Ваш комментарий
Комментарии