删除操作成功消息

时间:2017-10-31 18:16:27

标签: javascript react-redux immutable.js

删除项目时,我会执行删除操作。现在,每当删除一个项目时,我都会在屏幕上显示一条消息。 当我选择要删除的多个项目时,我会收到一堆消息。例如,如果我删除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();
        }
      })
    });
  };

}

1 个答案:

答案 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();
      }
    })
})