Javascript Apollo/GraphQL/React,如何查询循环中的数据?

Javascript Apollo/GraphQL/React,如何查询循环中的数据?,javascript,reactjs,mongodb,graphql,apollo,Javascript,Reactjs,Mongodb,Graphql,Apollo,在我的一个React组件中,我有一个数组,其中包含许多ID作为字符串。我想查询数组中的每个ID,并在MongoDB数据库中返回其关联对象的数组。然而,这只是有条件的,所以我想使用useLazyQuery而不是useQuery 我试图通过映射来实现它,但似乎我在使用useLazyQuery时遇到了问题。问题是: const [queryId, {loading, data}] = useLazyQuery[QUERY_ID]; if (queryForIds) { // Using ju

在我的一个React组件中,我有一个数组,其中包含许多ID作为字符串。我想查询数组中的每个ID,并在MongoDB数据库中返回其关联对象的数组。然而,这只是有条件的,所以我想使用useLazyQuery而不是useQuery

我试图通过映射来实现它,但似乎我在使用useLazyQuery时遇到了问题。问题是:

const [queryId, {loading, data}] = useLazyQuery[QUERY_ID];

if (queryForIds) {
    // Using just the first ID
   (queryId({variables: {id: idList[0]}}));
   console.log(data);
}
这会导致一个无限循环,没有打印任何内容(可能我的解析器什么也不返回,但不管我得到的是一个无限循环,它会使我的站点崩溃)。我很可能滥用useLazyQuery,但我不确定如何使用

最初我的想法是这样做:

const [queryId, {loading, data}] = useLazyQuery[QUERY_ID];

if (queryForIds) {
    // Using just the first ID
   idList.map((id) => (queryId({variables: {id: idList[0]}}))).data);
}

但我也不确定这是否有效。我如何解决这两个问题?

您可以尝试使用
新承诺
,在
未完成
承诺中解决。所有
/等。。。但是更简单的是实现一些查询/解析器——获取一个ID数组[并返回一个对象数组]——我最终在解析器中处理了它,谢谢。