>웹 프론트엔드 >JS 튜토리얼 >ECMAScript 6 Promise를 취소할 수 있나요?

ECMAScript 6 Promise를 취소할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-10-25 05:31:29834검색

Can ECMAScript 6 Promises Be Cancelled?

ECMAScript 6 Promise 체인 취소

JavaScript Promise 인스턴스에서 .then을 제거하는 방법이 있습니까?

ECMAscript 6 약속은 기본적으로 취소할 수 없습니다. 지속적인 논의에도 불구하고 ES6에는 공식 솔루션이 없습니다.

대안:

  • 하위 클래스화: 자신만의 Promise 구현을 생성하면 다음이 가능합니다. 취소할 수 있지만 구현은 신뢰할 수 없습니다.
  • Userland Promise 구현: cancelable-promise 및 promise-cancellation과 같은 타사 라이브러리는 취소 가능한 Promise를 제공합니다.

테스트 차단 해제를 위한 현재 솔루션:

취소 요청을 폴링하는 테스트 프레임워크 내에서 사용자 정의 cancelTest 플래그를 구현합니다. 시간 초과가 발생하면 cancelTest를 true로 설정하고 Assert.fail()을 호출하여 테스트를 실패로 표시합니다.

추가 업데이트:

초기 문제를 해결한 후( fn.call()) 중에 포착되지 않은 오류, 테스트 함수 자체에서 포착되지 않은 오류로 인해 then() 문이 호출되지 않았습니다. 오류를 포착하면 테스트 Promise가 정상적으로 해결되어 테스트가 완료되고 then() 문이 실행될 수 있습니다.

위 내용은 ECMAScript 6 Promise를 취소할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.