You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中AWS Amplify API listUsers查询返回空结果求助

解决React Native中AWS Amplify API list查询返回Promise状态而非数据的问题

你看到的{"_h": 0, "_i": 0, "_j": null, "_k": null}不是空输出,而是未解析的Promise对象——API.graphql()方法返回的是异步Promise,必须等待它完成解析才能获取真实的查询结果。

正确调用方式

你不需要创建新查询,Amplify生成的listUsers完全可以直接用,参数都是可选的(和你在AppSync控制台的无参数查询逻辑一致),只需要修改调用代码,处理异步逻辑:

方式1:使用async/await(推荐)

// 确保在async函数中执行
const getUsers = async () => {
  try {
    // 等待Promise解析
    const response = await API.graphql({ query: queries.listUsers });
    // 从响应中提取用户数据
    const users = response.data.listUsers.items;
    console.log('用户列表:', users);
  } catch (err) {
    console.error('查询失败:', err);
  }
};

// 调用函数
getUsers();

方式2:使用.then()链式调用

API.graphql({ query: queries.listUsers })
  .then(response => {
    const users = response.data.listUsers.items;
    console.log('用户列表:', users);
  })
  .catch(err => {
    console.error('查询失败:', err);
  });

为什么AppSync控制台可以正常返回?

AppSync控制台会自动处理查询的异步逻辑,直接展示解析后的最终结果;而在代码中,你需要手动通过await或.then()来等待Promise完成,否则拿到的只是Promise的内部状态对象,不是实际数据。

关于是否需要创建新查询的结论

完全不需要额外创建无参数查询。Amplify生成的listUsers查询中,$filter、$limit、$nextToken都是可选参数(GraphQL中带$的参数如果没有标记!就是可选的),不传参数时会使用默认值,和你在控制台执行的无参数查询效果完全一致。

内容的提问来源于stack exchange,提问作者KevinKrupa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:53:07