Javascript 异步等待函数返回承诺而不是字符串

Javascript 异步等待函数返回承诺而不是字符串,javascript,reactjs,async-await,Javascript,Reactjs,Async Await,我是javascript新手,这里有一个graphql getId = async dataId => { let finalData = await apolloClient.query({ query: GET_DOOR_ORDER, variables: { Id: dataId } }) return finalData?.value } 现在,我调用这个函数 let orderIdForb

我是javascript新手,这里有一个
graphql

 getId = async dataId => {
    let finalData = await apolloClient.query({
      query: GET_DOOR_ORDER,
      variables: {
        Id: dataId
      }
    })

    return finalData?.value
  }
现在,我调用这个函数

   let orderIdForbuyingSessionsEdit = '';

  orderIdForbuyingSessionsEdit = this.getClientOrderIdFromDoorOrder(orderId)
这是一个错误

Type 'Promise<any>' is not assignable to type 'string'.ts(2322)
类型“Promise”不能分配给类型“string”。ts(2322)

如何从异步函数中获取字符串作为返回值。

要调用异步函数,需要将
wait
关键字放在调用的位置。这将等待promise解决并返回值

在问题的文本中,第一个
getId
函数是异步函数调用的一个很好的例子。你也需要在你称之为的地方做同样的事情:

  • 调用另一个异步函数的函数应具有
    async
    关键字前缀
  • 要调用的异步函数应具有
    await
    关键字前缀
  • 因此,为了在某个地方正确调用
    getId
    函数,您需要这样做:

    async function myMethod() {
       let value = await getId(123);
       console.log(value);
    }
    

    阅读有关async/await的更多信息。

    您必须等待此操作。
    GetClientOrderFromDoorOrder(orderId)
    异步函数总是返回承诺,这是它们的全部目的。你仍然需要等待结果。