提问人:Nikon George 提问时间:9/18/2023 更新时间:9/18/2023 访问量:103
为什么 useMutation 不返回 promise?
Why doesn't useMutation return a promise?
问:
我的 axios 实例只返回一个 promise:
export const add_order = (data) => instance.post(`/Order/addItem`, { ...data });
我的突变:
const { mutate } = useMutation(add_order);
所以我现在的问题是:
- 为什么我不能使用 mutate 来等待结果?看起来 useMutation 只使用回调,实际上并没有返回 promise......
Eaxmple:
const myPostFunction = async () => {
try {
const result = await mutate(itemsForOrder)
console.log(result)
} catch (error) {
console.error(error);
}
};
我只是不能在突变上使用 await... 我的 VSC 说不能在这种表达式上使用 await,这是真的,我没有记录任何控制台,就像没有等待结果一样
有什么见解吗?
答:
3赞
Axnyff
9/18/2023
#1
如果你确实想等待 mutate,有一个异步版本的 mutate:你可以使用
const { mutateAsync } = useMutation(...)
评论
0赞
Nikon George
9/18/2023
哇,我怎么错过了。是的,你是完全正确的,谢谢!
0赞
Nikon George
9/18/2023
顺便说一句,mutateAsync 可以有 onSuccess 和其他回调吗?
0赞
Axnyff
9/19/2023
是的,看起来您也可以提供这些作为第二个参数
评论
mutateAsync