我来这里是不得已而为之!我一直在搜索1-2周,没有遇到任何问题!
我想在React中使用GraphQL(我有一个Apollo react客户端和Apollo后端),但是我希望能够调用查询并将结果作为对象返回,而无需使用组件或类来完成
我尝试使用client.query,但是无论尝试哪种方式,我只会得到诺言。
我想要这样的东西:
const myData = 某种查询调用
编辑:
我想做的是将一个对象数组传递到一个组件中,该组件随后将按照我想要的方式呈现数据。
一个示例是将事件列表传递到要在当天显示的日历单元格中。
这是我想做的更好的例子:
SIZE_MAX
答案 0 :(得分:0)
网络请求是异步的,以防止阻塞UI。 Apollo在幕后使用的Fetch API使用Promises而不是更传统的回调来处理整个网络上的异步请求资源,因此Apollo的API也基于Promises。没有可用的方法可以让您同步获取GraphQL查询-您只需要适当地构建代码结构即可在Promise解析后对其进行处理。
以下示例假定您已正确配置了客户端实例。使用then
:
function doSomething () {
client.query({ query: SOME_QUERY })
.then(({ data }) => {
// Use the returned data however you like
})
.catch(error => {
// Handle error
})
}
使用异步/等待:
async function doSomething () {
try {
const { data } = await client.query({ query: SOME_QUERY })
} catch (error) {
// Handle error
}
}
如果您不熟悉Promises,则查看适当的documentation并签出一些tutorials对您有利。