我正在尝试以角度2创建Hot observable(RxJS API) 类似于http://jsbin.com/fewotud/3/edit?js,console
中的工作示例所以当我使用"发布"调试器一直告诉我发布功能是未定义的 所以我的问题如何在Angular 2中使用Publish?我错过了添加任何图书馆吗? 这是我的代码:
//our root app component
import {Component} from 'angular2/core';
import {Observable} from 'rxjs/Observable';
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<h2>Hello {{name}}</h2>
<table><tr *ngFor="#itm of values"><td>{{itm}}</td></tr></table>
</div>
`,
directives: []
})
export class App {
tasks:Observable<Array<number>>;
constructor() {
this.values=[];
let tasks=new Observable(observer =>
{
observer.next(1);
observer.next(2);
observer.next(3);
} ).publish();
tasks.connect()
let subscription= this.tasks.subscribe(
value => this.values.push(value+5),error => this.error='error !',
() => this.finished = 'completed !'
);
)
this.name = 'Angular2';
}
}
这是我在plnkr中的完整版本: https://plnkr.co/edit/DFT8AWmAiKAO2CvjrUWn?p=preview
答案 0 :(得分:2)
你需要使用类似的东西来包含它:
import {Observable} from 'rxjs/Rx';
或
import 'rxjs/add/operator/publish';
我也在你的代码中看到了一些拼写错误:
let subscription= tasks.subscribe( // <-------
value => this.values.push(value+5),error => this.error='error !',
() => this.finished = 'completed !'
);
)
您需要在订阅后调用connect
方法...
请参阅此plunkr:https://plnkr.co/edit/ESA5RZ4Ce7jz485CIcIy?p=preview。