gpt4 book ai didi

javascript - 多个主题和订阅或只有一个 - Angular 5

转载 作者:行者123 更新时间:2023-11-29 23:28:26 26 4
gpt4 key购买 nike

现在我正在为我的应用程序编写前端代码。现在我有一个名为 socketio 的服务,它接收我的应用程序需要显示的数据。此外,该服务使用 Subjects 通过订阅将数据传递给组件。

是只有 1 个主题/订阅更好,这表明它在消息中的用途,还是有多个主题/订阅,每个任务一个?

我对有关内存使用和处理时间的最佳方法很感兴趣。

这是我的服务的样子:

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 个。

谢谢!

最佳答案

您总是希望订阅尽可能少,否则很容易忘记取消订阅等。您还可以通过异步管道将单个可观察对象绑定(bind)到模板,它会显示所有值。

所以你的代码示例看起来相当不错

另请参阅 Ben Lesh(rxjs 经理)的这篇文章:https://medium.com/@benlesh/rxjs-dont-unsubscribe-6753ed4fda87

关于javascript - 多个主题和订阅或只有一个 - Angular 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48209790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com