Angular 2/4无法读取undefined属性'next'

时间:2017-10-31 16:35:20

标签: angular angular2-services

我的服务是common.shared.service.ts

import { AuthService } from '../../services/api/auth-service';
import { Observable, Observer, Subject } from 'rxjs/Rx';
import { Injectable } from '@angular/core';

@Injectable()
export class CommonSharedService {

data: any;
dataChange: Observable<any>;
private dataChangeObserverl ;

 constructor() {
  this.dataChange = new Observable(observer =>
  this.dataChangeObserverl = observer).share();
 }

 setData(data: any) {
  this.data = data;
  this.dataChangeObserverl.next(this.data);
 }
}

现在我在我的一个组件中返回一个承诺时设置数据,例如HeaderComponent

export class HeaderComponent implements OnInit {

 user: {};
 constructor(private authService: AuthService, private 
   commonSharedService: CommonSharedService) {};

 ngOnInit() {

 this.authService.get()
 .subscribe(
  (response) => {
    this.user = response;
    this.commonSharedService.setData(response);
   } ,
   (error) => {
    console.log(error)
   }
  }
 }

但是当我在某个其他组件中获得suth用户对象时,它会给出错误

错误类型错误:无法读取未定义的属性“next”。我认为,因为我在返回promise之后设置了值,这就是为什么有时候它会给出这个错误如何解决这个问题。请帮助。

在其他一些组件中

this.commonSharedService.dataChange.subscribe((data) => {
    console.log(data);})
}

0 个答案:

没有答案