angular - 在 Angular 2 中,使用发布和连接创建 Hot observable 时出现错误

标签 angular rxjs

我正在尝试在 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/

相关文章:

angular - 覆盖我的可观察变量会杀死当前订阅者吗?

Angular 5 属性指令将 mat-ripple 添加到主机元素

html - 如何在 angular cli 中将 css 样式从 ts 导入到 less?

angular - Nginx网址重写仅适用于/

angular - 我没有得到带有间隔、switchMap 和映射的 Angular 6 的 rxjs 6

typescript - RxDB RxCollectionCreator typescript 错误

angular - Angular 2 如何卸载页面?

javascript - 如何按值将对象传递给 Angular2+ 组件

javascript - RxJs - 有损 zip 大理石测试

javascript - 修改与 Angular 异步管道 react 方式一起使用的流中的数据