2017-10-31 4 views
0

항목을 삭제할 때 삭제 작업이 수행됩니다. 지금은 항목이 삭제 될 때마다 화면에 하나의 메시지 만 표시됩니다. 삭제할 항목을 여러 개 선택하면 여러 개의 메시지가 나타납니다. 예를 들어 3 개의 항목을 삭제하면 '동영상이 삭제되었습니다.'라는 메시지가 표시됩니다. 화면에 3 번 나타납니다. 성공한 응답을 기반으로 모든 메시지를 하나로 그룹화하고 "3 개의 동영상을 성공적으로 삭제했습니다."와 같은 메시지를 표시하려면 어떻게해야합니까? '2 개의 동영상을 삭제할 수 없습니다.'라는 메시지가 나타납니다. 아래 코드는 성공 또는 오류 결과를 표시하지만 둘 다 표시하지는 않습니다. 이 오류는 failed.Here 내가 무엇을 얼마나 많은 계산하지 않습니다작업 삭제 성공 메시지

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

당신은 배열에 모든 약속을지도하고 약속으로 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(); 
     } 
    }) 
}) 
+0

당신의 해결책. 몇 가지 문제에 직면, 위의 내 코드를 업데이 트되었습니다. 나에게 무슨 일이 일어나는지 알려주세요. – Mustang

+0

어떤 문제가 있습니까? – madox2

+0

위 코드를 사용하면 성공 또는 오류 결과를 표시하지만 둘 다 표시하지는 않습니다. 오류는 실패한 횟수를 계산하지 않습니다. – Mustang