繁体   English   中英

如何进行一次获取(异步/承诺)并在多种方法中使用该数据?

[英]How to do one fetch (async/promise) and use that data in many methods?

我有一个获取请求,它给了我数据。 我需要以不同的方法使用该数据,但我不想在网络中多次发出相同的请求。 例如,我如何获取数据,为此使用一种方法并在同一服务的不同方法中使用它。

export class MediaService {
  constructor(private mediaAppApiService: MediaAppApiService) {}

  private getMedia() {
    const result = this.mediaAppApiService
      .getDigitalMedia()
      .then((item) => {
        const { media } = item;

        return media;
      });

    return Promise.resolve(media);
  }

  public getMediaHours() {
    const mediaHours = this.getMedia().then((media) => {
      return media.map((value) => {
        const { id, isDefault } = value;
        return {
          id,
          status: isDefault ? StatusCodes.ACTIVE : StatusCodes.INACTIVE,
        };
      });
    });

    return Promise.resolve(mediaHours);
  }

  public getRecency() {
    const recency = this.getMedia().then((media) => {
      return media.find((value) => value.isDefault).name;
    });

    return Promise.resolve(recency);
  }
}

我会亲自尝试使用 RXJS 存储并在检索到该数据后将其保存到应用程序的 state 中。 这样,您所有感兴趣的应用程序组件都可以订阅此数据,并且可以集中供所有人使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM