现在我正在为我的应用程序编写前端代码。现在我有一个名为socketio的服务,它接收我的应用程序需要显示的数据。此外,此服务使用Subjects通过子目录将数据传递给组件。
最好只有一个主题/订阅,它表示邮件内容是什么,或者有多个主题/订阅,每个任务一个?
我对内存使用和处理时间的最佳方法感兴趣。
以下是我的服务:
import { Injectable} from '@angular/core';
import { Subject } from 'rxjs/Subject';
import * as io from 'socket.io-client';
@Injectable()
export class SocketioService {
namespace = '/test';
socket: any;
positionsUpdate: Subject<object> = new Subject<object>(); // One subject
pingsUpdate: Subject<object> = new Subject<object>(); // Another subject
constructor() {
this.socket = io(location.protocol + '//' + 'localhost' + ':5000' + this.namespace);
const self = this;
this.socket.on('advisor_ping', function(msg) {
self.pingsUpdate.next(msg);
});
this.socket.on('advisor_position', function(msg) {
self.positionsUpdate.next(msg);
});
}
}
现在,如果我采用多主题方法,我最终会有9个。
谢谢!
答案 0 :(得分:1)
您总是希望尽可能少订阅,否则很容易忘记取消订阅等。您还可以通过异步管道将单个observable绑定到模板,它将显示所有值。
所以你的代码示例看起来很不错
另请参阅Ben Lesh(rxjs经理)的这篇文章:https://medium.com/@benlesh/rxjs-dont-unsubscribe-6753ed4fda87