【问题标题】:Angular2 observable not workingAngular2可观察到的不起作用
【发布时间】:2017-06-03 13:14:34
【问题描述】:

我正在使用 peerjs 库来构建聊天。每次收到新消息时,我都会尝试做一个可观​​察的来触发一个事件。

this.data = new Observable(observer => {
                   this.peer.on('connection', (data) => {
                    alert("TRIGGER");
                    observer.next(data);   
                });
             })


             this.peerMessages = this.data.subscribe(message => {
                alert(message);
            });

我可以看到第一个警报,但第二个警报永远不会触发。我没有从浏览器控制台收到任何错误。我做错了什么?

我尝试使用观察者,因为我想从角度组件更改变量,而不是 alert(message)。

【问题讨论】:

  • 代码看起来不错,你能创建一个活的例子吗?
  • 嗨。我在 app.component.ts 中使用以下项目 github.com/rajayogan/angular2-videochat 方法 this.peer.on('connection', function(conn) { 我正在尝试从中创建一个 observable。
  • 问题是它在那个项目中工作,但是当你在不同的项目中做类似的事情时不起作用?或者它甚至在那个项目中都不起作用?
  • 好的,如果可能,请创建一个演示您的具体问题的现场示例,我拿了您的示例并在我的笔记本电脑上运行它,这很好(除了我没有“连接”事件,所以我触发了一个自定义事件)。如果您删除 this.peer.on('connection', (data) => { 并只执行 observer.next('test') 是否有效?
  • 它应该运行一次。我做了以下事情,它奏效了:this.data = new Observable(observer => observer.next('test')); this.peerMessages = this.data.subscribe(message => alert(message));。所以我认为你应该创建一个演示这个问题的活生生的例子。也许还有其他事情发生(没有导入正确的东西,一些你没有注意到的错误,等等)。

标签: javascript angular peerjs


【解决方案1】:

代码看起来不错,但请确保导入所需的所有内容。例如,如果使用rxjs

import { Observable, ... } from 'rxjs/Observable';

【讨论】:

    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2018-07-15
    • 2017-07-17
    相关资源
    最近更新 更多