我正在尝试在 Angular 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
最佳答案
您需要使用类似的内容包含它:
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 .
关于angular - 在 Angular 2 中,使用发布和连接创建 Hot observable 时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722467/