угловой Rxjs subject.next () не работает в мобильном браузере - PullRequest
0 голосов
/ 17 декабря 2018

В качестве кода ниже, который работает в браузере рабочего стола.Тем не менее, это не работает в мобильном браузере.Я нахожу это из-за subject.next () не удалось успешно отправить.

https://stackblitz.com/edit/angular-nmpadm (мои коды)

ToastService.ts

 public subject = new Subject<ToastModel>();

 constructor() {}

 getToast = (toastId?: string): Observable<any> => {
   return this.subject.asObservable();
 };

 success(message: string, keepAfterRouteChange = false) {
  this.toast(ToastType.Success, message, keepAfterRouteChange);
 }

 toast(type: ToastType, message: string, keepAfterRouteChange = false) 
 {
   this.keepAfterRouterChange = keepAfterRouteChange;
   // I think is this code doesn't work
   this.subject.next(<ToastModel>{ type: type, message: message });
 }

toast.component.ts

constructor(private toastService: ToastService) {
}

ngOnInit() {
  this.toastService.getToast().subscribe((toast: ToastModel) => {
    // because in here can not catch the data from subject.next()
    console.log('toast')
    if(!toast) {
      this.toasts = [];
      return;
    }
    this.toasts.push(toast);
  })

  this.toastService.subject.subscribe((toast: ToastModel) => {
    console.log(toast);
  })
}

Над этими кодами работает в браузере настольного компьютера, однако в мобильном браузере он не работает

Странно, кто-нибудь может мне помочь?

...