如何在angular2中使用异步主题?

时间:2016-04-04 05:51:34

标签: angular rxjs5

您好我有一个简单的组件和服务。当用户点击提交按钮时,我正在调用一个服务,其中异步主题向其所有订阅者发出一个值。我已经使用主题完成它它工作正常但我想做它使用Async Subject。我在这里做了一个演示http://plnkr.co/edit/tHjPVZ5NurJRWdCM9lbt?p=preview ......这是我的服务......

export class ErrorService{
  latestError:AsyncSubject<>=new AsyncSubject();

  error(){
    this.latestError.next('form submitted');
  }
}

这是我订阅asyncsubject

的组件类
export class AppComponent { 
  result:any;
  constructor(private service:ErrorService){
    this.service.latestError.subscribe(err=> this.result=err);
  }

  onSubmit() { 
    this.service.error();
  }
}

但这是错误...我不知道我在哪里做错了...有人请帮助我纠正这个错误并告诉我如何使用异步主题并向其订阅者发出值

1 个答案:

答案 0 :(得分:4)

您需要以这种方式包含该类:

import {AsyncSubject} from 'rxjs/subject/AsyncSubject';

@Injectable()
export class ErrorService{
  latestError:AsyncSubject<>=new AsyncSubject();
  error(){
    this.latestError.next('form submitted');
  }
}

请参阅此plunkr:http://plnkr.co/edit/SAl4YVXKRWpS7OeTYMrd?p=preview