如何解决破坏承诺的回应
我正在研究诺言,并试图实现这样的目标。我有一个异步函数。
async function myFunc(): Promise<{ data: any }> {
return new Promise((resolve,reject) => {
resolve({ data: { item: "test" } })
});
}
我想这样使用它:
const {data} = myFunc();
例如,useQuery在apollo客户端中的基本工作方式。
有什么办法可以做到这一点?我猜我已经偏离了轨道。我知道您可以使用then或catch,但是我特别希望遵循useQuery这样的模式。
解决方法
您可以在async
函数中这样做:
const { data } = await myFunc();
或在非async
函数中这样:
myFunc()
.then(({data}) => {
// ...
})
// .catch here,probably
正如作为旁注,没有理由将functino显示为async
。如果在函数中使用async
,并希望它根据函数中发生的情况自动创建承诺,则只需要在函数中使用await
。在函数中,不使用await
,而是显式创建诺言。 (但这可能只是一个占位符...)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。