mirror of
https://github.com/strapi/strapi.git
synced 2025-11-02 10:55:37 +00:00
update/create/delete components sequentially instead of in parallel
This commit is contained in:
parent
fafdaa4e11
commit
e295276048
@ -43,9 +43,12 @@ const createComponents = async (uid, data) => {
|
||||
throw new Error('Expected an array to create repeatable component');
|
||||
}
|
||||
|
||||
const components = await Promise.all(
|
||||
componentValue.map((value) => createComponent(componentUID, value))
|
||||
);
|
||||
// No Promise.all to avoid deadlocks
|
||||
const components = [];
|
||||
for (const value of componentValue) {
|
||||
const compo = await createComponent(componentUID, value);
|
||||
components.push(compo);
|
||||
}
|
||||
|
||||
componentBody[attributeName] = components.map(({ id }) => {
|
||||
return {
|
||||
@ -77,18 +80,18 @@ const createComponents = async (uid, data) => {
|
||||
throw new Error('Expected an array to create repeatable component');
|
||||
}
|
||||
|
||||
componentBody[attributeName] = await Promise.all(
|
||||
dynamiczoneValues.map(async (value) => {
|
||||
const { id } = await createComponent(value.__component, value);
|
||||
return {
|
||||
id,
|
||||
__component: value.__component,
|
||||
__pivot: {
|
||||
field: attributeName,
|
||||
},
|
||||
};
|
||||
})
|
||||
);
|
||||
// No Promise.all to avoid deadlocks
|
||||
componentBody[attributeName] = [];
|
||||
for (const value of dynamiczoneValues) {
|
||||
const { id } = await createComponent(value.__component, value);
|
||||
componentBody[attributeName].push({
|
||||
id,
|
||||
__component: value.__component,
|
||||
__pivot: {
|
||||
field: attributeName,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
@ -137,9 +140,12 @@ const updateComponents = async (uid, entityToUpdate, data) => {
|
||||
throw new Error('Expected an array to create repeatable component');
|
||||
}
|
||||
|
||||
const components = await Promise.all(
|
||||
componentValue.map((value) => updateOrCreateComponent(componentUID, value))
|
||||
);
|
||||
// No Promise.all to avoid deadlocks
|
||||
const components = [];
|
||||
for (const value of componentValue) {
|
||||
const compo = await updateOrCreateComponent(componentUID, value);
|
||||
components.push(compo);
|
||||
}
|
||||
|
||||
componentBody[attributeName] = components.filter(_.negate(_.isNil)).map(({ id }) => {
|
||||
return {
|
||||
@ -173,19 +179,18 @@ const updateComponents = async (uid, entityToUpdate, data) => {
|
||||
throw new Error('Expected an array to create repeatable component');
|
||||
}
|
||||
|
||||
componentBody[attributeName] = await Promise.all(
|
||||
dynamiczoneValues.map(async (value) => {
|
||||
const { id } = await updateOrCreateComponent(value.__component, value);
|
||||
|
||||
return {
|
||||
id,
|
||||
__component: value.__component,
|
||||
__pivot: {
|
||||
field: attributeName,
|
||||
},
|
||||
};
|
||||
})
|
||||
);
|
||||
// No Promise.all to avoid deadlocks
|
||||
componentBody[attributeName] = [];
|
||||
for (const value of dynamiczoneValues) {
|
||||
const { id } = await updateOrCreateComponent(value.__component, value);
|
||||
componentBody[attributeName].push({
|
||||
id,
|
||||
__component: value.__component,
|
||||
__pivot: {
|
||||
field: attributeName,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
@ -287,14 +292,14 @@ const deleteComponents = async (uid, entityToDelete, { loadComponents = true } =
|
||||
|
||||
if (attribute.type === 'component') {
|
||||
const { component: componentUID } = attribute;
|
||||
await Promise.all(
|
||||
_.castArray(value).map((subValue) => deleteComponent(componentUID, subValue))
|
||||
);
|
||||
for (const subValue of _.castArray(value)) {
|
||||
await deleteComponent(componentUID, subValue);
|
||||
}
|
||||
} else {
|
||||
// delete dynamic zone components
|
||||
await Promise.all(
|
||||
_.castArray(value).map((subValue) => deleteComponent(subValue.__component, subValue))
|
||||
);
|
||||
for (const subValue of _.castArray(value)) {
|
||||
await deleteComponent(subValue.__component, subValue);
|
||||
}
|
||||
}
|
||||
|
||||
continue;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user