javascript - Reactjs回调在返回错误之前获取错误
问题描述
嗨,我是反应的初学者,我有以下代码
import { useCallback } from 'react';
import { useMutation } from '@apollo/client';
import { useCartContext } from '@magento/peregrine/lib/context/cart';
export const useWishlistAllItems = props => {
const { items,mutations } = props;
const { addSimpleWishListItemToCartMutation } = mutations;
const [{ cartId }] = useCartContext();
const [addWishlistItemToCart, { error, loading }] = useMutation(addSimpleWishListItemToCartMutation);
const handleAddAllItemsToCart = useCallback(async () => {
try {
items.map((item,index) => {
if (item.product.__typename !== 'ConfigurableProduct'){
const cartItem = {
data: {
quantity: 1,
sku: item.product.sku
}
};
addWishlistItemToCart({
variables: {
cartId,
cartItem
}
});
}
})
} catch {
return;
}
}, [addWishlistItemToCart, cartId, items]);
const saveWishList = useCallback(async () => {
try {
window.location.reload(false);
}catch {
return;
}
}, []);
return {
handleAddAllItemsToCart,
saveWishList,
hasError: !!error,
isLoading: loading
};
};
我已经正确处理了我的组件中返回的错误,但问题是我在返回到组件之前得到了上述错误。我认为这是因为回调函数。请给我一个解决方案。
解决方案
在没有等待的情况下运行异步方法就像只是启动任务而不监控它的进度和结果。因此,再次使用 await 检查您的代码并返回适当的输出。
推荐阅读
- odoo - 如何通过单击 many2many 字段中的记录来显示表单视图而不提升模式面板
- sql - 比较 2 行和 2 列并找出差异
- webpack - 如何为nuxt生成设置路由器基础?
- python - 将函数返回的键值作为新列附加到 Dataframe
- android - 如何在 Android 的 react-native 中解决高程阴影问题
- javascript - 如何删除重复的嵌套对象比较它们的值
- css - Angular 7 升级后样式问题
- botframework - 如何发送 1:1 欢迎信息?
- c# - 使用带有 MSAL 令牌“未经授权”的 KeyVaultClient
- c# - 如何在应用程序运行时显示 gif?