【问题标题】:Accessing data from a complex object that is returned by an observable从可观察对象返回的复杂对象中访问数据
【发布时间】:2026-01-15 23:45:01
【问题描述】:

我有一个 Angular 客户端,它从可观察对象中获取数据(通过 apollo.watchQuery())。

当我记录从 observable 返回的数据时,它的结构恰好是这样的: console.log() output

如何从主“用户”对象访问这些“用户”对象中的每一个?

这就是我最初获取和记录数据的方式:fetching_users

【问题讨论】:

  • 嗨,对不起,我不太明白你的问题:你为什么不遍历你的用户数组?像 res.data.users.map(user => {//any treatment here}) 之类的东西?或者只是一个愚蠢的(res.data.users的const用户){//这里的任何处理}?
  • 感谢@millenion,但是当我尝试访问 res.data.users 时,它说:“错误 TS2339:属性 'users' 在类型 '{}' 上不存在。”。否则很容易。

标签: node.js angular graphql apollo apollo-client


【解决方案1】:

您可以使用角度函数 forEach 访问每个用户对象,在您的情况下,它将是这样的

this.apollo.watchQuery<any>(...).valueChanges.subscribe(
  res=>{ //res here is Users
    res.forEach(
    user=>{
    console.log(user.name);
  }
})

【讨论】:

  • 我认为这肯定可以工作@kenny-samuel,但它会抛出一个错误:“错误 TS2339:'ApolloQueryResult' 类型上不存在属性 'forEach'”。那是什么意思?我是否在迭代未定义的内容?
  • 已解决! Apollo 方法应称为 apollo.watchQuery&lt;any&gt;(..); 而不仅仅是 apollo.watchQuery(..);
  • 很好,我也会更新我的答案以供将来参考
  • 非常有用的资源如果你有同样的问题:[Apollo Docs] (apollographql.com/docs/angular/basics/queries)