약속을 취소할 수 없다는 것이 왜 불이익인가요?
淡淡烟草味
淡淡烟草味 2017-06-15 09:22:29
0
4
897

어떤 상황에서 약속을 취소해야 하나요?

淡淡烟草味
淡淡烟草味

모든 응답(4)
伊谢尔伦

Promise는 보류 상태에서 해결/거부 상태로의 전환이 일방적이며 고유한 상태로 설계되었습니다. 취소를 추가하면 더 많은 상태 문제가 발생하며 Promise 모델이 처리하기에 적합하지 않습니다(이 시나리오에서는 RxJS와 같은 FRP 솔루션이 더 적합해야 합니다).

취소하면 어떤 상태 문제가 발생하나요? 전자상거래 환불을 예로 들어보겠습니다. 구매했지만(보류 중인 약속 시작) 아직 받지 못했습니다(아직 해결되지 않음). 후회하고 환불을 클릭했지만(상태를 취소로 변경) 환불 프로세스가 적용되지 않습니다. 즉시 검토가 필요한 경우(취소 후 즉시 거부할 수 없음), 급여를 지급했지만 환불을 원하지 않으므로 다시 [환불 취소]를 클릭하면 이때 또 다른 비동기 상태 변경이 발생합니다. (다시 취소) , [환불 취소]도 비동기적으로 취소할 수 있습니다. (취소하기 전에 취소하시겠습니까?) 이 때 상태 변경의 모든 단계도 매핑될 수 있습니다. 그리고 거부합니다. 안녕하세요 학생 여러분, 취소를 지원하는 Promise를 구현하기 위한 프로세스와 코드의 상태 변경 다이어그램을 그려주세요.

巴扎黑

예를 들어 페이지를 1분에 한 번씩 새로 고쳐야 하는데 인터페이스가 너무 느려서 다음에 요청을 보낼 때 마지막 요청이 돌아오지 않는 경우가 있습니다. 이 경우 마지막 요청을 취소하고 싶습니다.

洪涛

예를 들어 like 및 취소 like 작업
Promise를 사용했는데 실수로 좋아요를 하고 취소하려는 경우 Like 작업이 끝날 때까지 기다려야 작동할 수 있습니다
그래서 Promise의 향상된 버전이 있습니다. → 관찰 가능

阿神

두 가지 작업(두 개의 약속)을 ​​동시에 수행하고, 하나가 완료되면 다른 작업을 취소하고, 마지막으로 먼저 성공한 결과를 반환합니다.

그러나 취소는 함정입니다. 예를 들어 여러 스레드에 의한 취소는 비동기 예외를 의미합니다. 즉, 복구할 기회를 주지 않고 작업이 갑자기 완전히 중단되는 것을 의미합니다(그렇지 않으면 취소는 의미가 없습니다). 그래서 복원하거나 되돌릴 방법이 없습니다. 순수 CPU 독립적 컴퓨팅 작업만 안전하게 취소할 수 있습니다.

취소하고 나서 취소하는 '취소'에 대해서는 취소 상태(반쯤 죽은 상태)에 들어가면 다른 상태로 전환할 수 없다는 규정은 없습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿