我可以读取批量突变的每个响应吗? [阿波罗使用突变]

Can I read each response from batched mutations? [Apollo useMutation]

假设我定义了这样的突变:

const [deleteItem, {data}] = useMutation(deleteItemMutation)

然后在循环中重复调用 deleteItem(id),有没有办法让我读取每个 {data} 响应?突变是批处理的,响应是一个数组(我可以通过检查网络流量看到)。但是,{data} 变量仅包含来自最后一批突变的响应。当然,这是有道理的,但我仍然对所有这些结果感兴趣。知道我该怎么做吗?

我正在考虑将突变包装在另一个需要回调的函数中,我认为这会解决问题。但是有更简单的解决方案吗?

钩子返回的 mutate 函数 returns 将使用变异结果解析的 Promise。因此,虽然钩子返回 data 道具是为了方便,但没有必要使用它。

const items = ['a', 'b', 'c']
const results = await Promise.all(items.map(async (itemId) => {
  const { data } = await deleteItem({ variables: { itemId } })
  return data
}))
console.log(results[0].data)