【发布时间】: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