Javascript 异步等待函数返回承诺而不是字符串
我是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
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)
异步函数总是返回承诺,这是它们的全部目的。你仍然需要等待结果。