在这里,我有一个场景,其中我有一个数组,其中包含一些要通过 GraphQL 突变添加到数据库中的项目。
我正在循环发送该突变,它工作正常。
但是当我检查我的数据库时发生了一些不匹配,假设我在数组中有 10 个项目并且请求被快速提出,所以发生的只是 2 或 3 个项目被添加到数据库中。
- 我尝试的第一个解决方案是使用
Promise.all
,但它不起作用。 - 我想到的第二件事是将当前索引发送到该突变,并且在它成功之后它会返回相同的值
index
,所以我根据那个发送另一个项目,但我很困惑如何发送它index
以及variables
如果它需要那个但不知道它是否会给我同样的回报。
我附上了我的一些代码片段以获得更多想法:
import { useMutation } from "@apollo/client";
// Req in loop
const updateDataInLoop = (cartId, strapiId) => {
for (let i = 1; i < items.length; i++) {
updateReq({
variables: {
// API variables
},
});
}
};
// graphql api
const [updateReq] = useMutation(UPDATE_MUTATION, {
onCompleted: (data) => {
// after this I've to send another req
},
});