首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Angular 2中创建RxJS主题?

如何在Angular 2中创建RxJS主题?
EN

Stack Overflow用户
提问于 2016-11-05 22:27:03
回答 2查看 23.9K关注 0票数 9

我可以用下面提到的方式在我的角度组件中创建一个观察值

代码语言:javascript
运行
复制
...
...
import { Observable } from 'rxjs/Observable';
..
...
let observable = new Observable( function subscribe(observer) {
        observer.next(1);
        observer.next(2);
        observer.next(3);
        observer.next(4);
        setTimeout(() => {observer.next(5); },9000);
    });

但是我不知道如何创建一个主题,有人可以提供一个相同的例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-05 22:33:25

使用带有Angular的Rx.Subject和不使用Angular没有什么不同,主要原理是相同的,看看下面的例子

代码语言:javascript
运行
复制
const subject = new Rx.Subject();
const subscription = subject.subscribe(
  (data) => console.log(data),
  (err) => console.log(err),
  () => console.log('Completed')
);

subject.next(1);
subject.next(2);
subject.next(3);
subject.complete();
代码语言:javascript
运行
复制
<script src="https://unpkg.com/@reactivex/rxjs@5.0.0-beta.7/dist/global/Rx.umd.js"></script>

您需要创建新的实例Rx.Subject,然后在需要的地方订阅它,并触发事件。

票数 3
EN

Stack Overflow用户

发布于 2016-11-05 22:36:54

这里有一个插入器:http://plnkr.co/edit/jLtFLjWrvHGI0ZPHl10B?p=preview

代码语言:javascript
运行
复制
import {Subject} from 'rxjs/Subject';

@Injectable()
export class MyService {

    public invokeEvent:Subject<any> = new Subject();

    constructor() {}
}

像订阅可观察对象一样订阅它:

代码语言:javascript
运行
复制
  constructor(private _myService: MyService) {
         this._myService.invokeEvent.subscribe((value) => {
           console.log(value); 
         });
       }

并使用next将值像可观察对象一样再次推送到它。

代码语言:javascript
运行
复制
  ngAfterViewInit(){
      this._myService.invokeEvent.next(1);
  }
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40439327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档