Javascript 如何通过承诺包装useQuery钩子
我有一个graphql查询和useQuery挂钩,它返回大量数据。我通过单击按钮开始加载,并显示数据加载何时完成。 是否可以使用承诺等待加载数据?你能写下来吗Javascript 如何通过承诺包装useQuery钩子,javascript,reactjs,promise,graphql,Javascript,Reactjs,Promise,Graphql,我有一个graphql查询和useQuery挂钩,它返回大量数据。我通过单击按钮开始加载,并显示数据加载何时完成。 是否可以使用承诺等待加载数据?你能写下来吗 const GET_NAME= gql` query { employee { id name } } `; ... function Form () { ... const { data } = useQuery(
const GET_NAME= gql`
query {
employee {
id
name
}
}
`;
...
function Form () {
...
const { data } = useQuery(
GET_NAME
);
const onClick = () => {
....
return textInput.current!.value=data.employee.name;
使用getQuery中的解构值
您不需要添加承诺,这是内部处理的
文档中的一个示例
const { loading, error, data } = useQuery(GET_DOGS);
if (loading) return 'Loading...'; // whilst its loading this will retun
if (error) return `Error! ${error.message}`; // if there's an error this will return
return <pre>{data}</pre> // if the other 2 are not true you must have data, this will return
const{loading,error,data}=useQuery(GET_DOGS);
如果(正在加载)返回“正在加载…”;//在其加载过程中,将重新运行
if(error)返回`error${error.message}`;//如果出现错误,将返回
return{data}//如果其他2个不为true,则必须有数据,这将返回
正如您所看到的,加载状态已经在返回中。还有一个错误。您可以在等待数据返回时响应这些值。使用getQuery中的解构值
您不需要添加承诺,这是内部处理的
文档中的一个示例
const { loading, error, data } = useQuery(GET_DOGS);
if (loading) return 'Loading...'; // whilst its loading this will retun
if (error) return `Error! ${error.message}`; // if there's an error this will return
return <pre>{data}</pre> // if the other 2 are not true you must have data, this will return
const{loading,error,data}=useQuery(GET_DOGS);
如果(正在加载)返回“正在加载…”;//在其加载过程中,将重新运行
if(error)返回`error${error.message}`;//如果出现错误,将返回
return{data}//如果其他2个不为true,则必须有数据,这将返回
正如您所看到的,加载状态已经在返回中。还有一个错误。您可以在等待数据返回时对这些值进行响应。正如Joe Lloyd指出的那样,
useQuery
钩子会告诉您何时加载以及何时完成。如果加载
为真,则需要呈现加载屏幕,如果存在错误
则显示错误,否则显示数据。正如Joe Lloyd指出的那样,useQuery
钩子会告诉您加载的时间和完成的时间。如果加载
为真,如果出现错误
显示错误,则需要呈现加载屏幕,否则显示数据。感谢您的回复,您能解释一下它是如何在内部工作的吗?它是基于Promise还是其他异步工具?谢谢您的回复,您能解释一下它是如何工作的吗?它是基于Promise还是其他异步工具?