我怎样才能只用一个行为主体来做到这一点?

发布于 2025-01-11 20:02:17 字数 539 浏览 6 评论 0原文

我有这样的代码:

private _fileData$: BehaviorSubject<string> = new BehaviorSubject<string>('');
private _storageData$: BehaviorSubject<Array<string>> = new BehaviorSubject<Array<string>>([]);

    private constructor() {
        this._fileData$.subscribe({ next: (fileData: string) => this._storageData$.next(fileData.toString().split('\r\n')) });

所以我在 _fileData$ 中有一些字符串数据,我想按行分割它,这样我就得到字符串数组,所以我创建 _storageData$ 将它们放在这里。 它像我想要的那样工作,但是我怎样才能只使用一个BehaviorSubject来做到这一点呢?

I have this code:

private _fileData$: BehaviorSubject<string> = new BehaviorSubject<string>('');
private _storageData$: BehaviorSubject<Array<string>> = new BehaviorSubject<Array<string>>([]);

    private constructor() {
        this._fileData$.subscribe({ next: (fileData: string) => this._storageData$.next(fileData.toString().split('\r\n')) });

So i have some string data in _fileData$ and I want to split it by lines so I get Array of strings, so im creating _storageData$ to put them here.
It works like I want to, but how can I do it using only one BehaviorSubject?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一花一树开 2025-01-18 20:02:17
private _storageData$: Observable<Array<string>>;

this._storageData$ = this._fileData$
    .pipe(map((fileData) => {
        return fileData.toString().split('\r\n');
    }));

然后你可以在你的视图中绑定它:

<span>{{ _storageData$ | async }}</span>

map 是一个 rxjs 运算符

private _storageData$: Observable<Array<string>>;

this._storageData$ = this._fileData$
    .pipe(map((fileData) => {
        return fileData.toString().split('\r\n');
    }));

Then you can bind to it in your view:

<span>{{ _storageData$ | async }}</span>

map is an rxjs operator

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文