【问题标题】:How to improve Rxjs statement?如何改进 Rxjs 语句?
【发布时间】:2020-09-30 21:48:33
【问题描述】:

我有以下 Rxjs 语句:

    const versionsRequest2$ = (num: string) =>
        request2$(num).pipe(
            map((versions) => {
                const p = new P();
                p.setVersions(versions);
                return p;
            }),
        );

如何改进map()语句?我不喜欢,我试图创建类的实例并用响应中的数据填充它。

我可以使用以下方法改进:

map((versions) =>  new P().setVersions(versions)),

如果构造函数PsetVersions 在内部返回this

【问题讨论】:

    标签: javascript rxjs rxjs5


    【解决方案1】:

    您可以为P 编写一个接受versions 参数的构造函数。然后你可以这样做:

    const versionsRequest2$ = (num: string) =>
      request2$(num).pipe(
        map((versions) => new P(versions)),
      );
    

    【讨论】:

    • 如果我应该传递具体类型的版本怎么办?我有类模型:class Version {},里面有属性。我需要将 JSON 响应转换为此类模型并分配给 P()?
    • 所以,版本是类P中的组合。没事吧? class P() { constructor(versions: any) { versions.map((data) => new Version(data)); } 问题在于构造函数中的 any 类型。 }
    • 这听起来像是一个新问题会更好地解释的东西,因为我不确定你在这些 cmets 中要问什么。
    猜你喜欢
    • 2021-11-28
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多