删除项目时,我会执行删除操作。现在,每当删除一个项目时,我都会在屏幕上显示一条消息。 当我选择要删除的多个项目时,我会收到一堆消息。例如,如果我删除3个项目,则会显示“视频已成功删除”的消息。在屏幕上出现3次。如何根据成功响应将所有消息分组为一个,并显示“3个视频已成功删除”等内容。和另一条显示“2个视频无法删除”的消息?使用下面的代码,它显示成功或错误结果,但不显示两者。该错误不能计算失败的数量。这就是我所拥有的:
export function idsToDelete (ids) {
return dispatch => {
const promises = ids.map(id => api.delete(dispatch, id));
dispatch({
type: DELETE,
promise: Promise.all(promises).then((results) => {
console.log(results.size +"Video deleted.");
}, error => {
if(error.type) {
console.log("video could not be deleted.");
} else {
return Promise.reject();
}
})
});
};
}
答案 0 :(得分:0)
您可以将所有承诺映射到数组中,然后将Promise.all()
作为承诺传递:
const deletePromises = ids.map(id => api.delete(dispatch, id))
dispatch({
type: DELETE_MANY,
ids,
promise: Promise.all(deletePromises)
.then((results) => {
// Show the success message only if delete was successful.
console.log("Videos deleted successfully.");
}, error => {
return Promise.reject();
}
})
})