Javascript 如何通过承诺包装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(

我有一个graphql查询和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还是其他异步工具?