即使服务是异步的,返回值也是一个承诺
Returned value is a promise even though the service is async
我有一个 service.ts 正在向之前从 Apollo GraphQL 获取的数据添加额外的数据。但数据并不重要。重要的是-如何获取返回值?
class TestService implements TestServiceInterface {
public async fetch(): Promise<any> {
const result = await apolloClient.query({
query: gql`
query Query {
Test{
test
}
}
}
}
`,
})
return {
graphTitle: "Test",
graph: "LINE",
};
}
}
export interface TestServiceInterface {
fetch(): Promise<any>;
}
如何在另一个.ts文件中抓取TestService的返回值?
const test = TestService.fetch()
export const TestState = (async () => {
return await test
})()
然后:
const initialState = {state: [TestState]}
几乎提供了我所需要的,但现在在我收到的组件中(仍然是一个错误):
Promise { "_U": 0, "_V": 1, "_W": Object { **I have correct values here** }
如何从对象内部获取值?
正如 VLAZ 指出的那样
You cannot convert a promise to a synchronous value
在您的代码中获取 test
中的值,您应该执行以下操作
const test = await TestService.fetch()
另请参考VLAZ提供的link
我有一个 service.ts 正在向之前从 Apollo GraphQL 获取的数据添加额外的数据。但数据并不重要。重要的是-如何获取返回值?
class TestService implements TestServiceInterface {
public async fetch(): Promise<any> {
const result = await apolloClient.query({
query: gql`
query Query {
Test{
test
}
}
}
}
`,
})
return {
graphTitle: "Test",
graph: "LINE",
};
}
}
export interface TestServiceInterface {
fetch(): Promise<any>;
}
如何在另一个.ts文件中抓取TestService的返回值?
const test = TestService.fetch()
export const TestState = (async () => {
return await test
})()
然后:
const initialState = {state: [TestState]}
几乎提供了我所需要的,但现在在我收到的组件中(仍然是一个错误):
Promise { "_U": 0, "_V": 1, "_W": Object { **I have correct values here** }
如何从对象内部获取值?
正如 VLAZ 指出的那样
You cannot convert a promise to a synchronous value
在您的代码中获取 test
中的值,您应该执行以下操作
const test = await TestService.fetch()
另请参考VLAZ提供的link