1

API 呼び出しを行い、の配列を返すヘルパー関数がありますitems。これらの各アイテムはエンティティを表しますUser

各ユーザーには、category_idデフォルトで null のプロパティがあります。category_idユーザー ID を取得し、ユーザーの属性として使用する ID を抽出できる Category オブジェクトの Observable を返す別のヘルパー関数の結果から、ユーザーごとにこのプロパティを設定したいと思います。

次の(疑似)コードに到達しました(TypeScript構文ですが、質問は一般的にObservableオペレーターに適用されます):

this.backend
    .request(
      'v1/users',
    )
    .pipe(
      map(items => {
        items.forEach(user => {
          this.categories.getName(user['id']).subscribe(category => {
            user['category_id'] = category['id'];
          });
        });
        return items;
      })
    )

当然、Observable 演算子と配列関数 (forEach) が混在しているため、これは機能しません。

4

1 に答える 1