예를 들어 웹 음악 플레이어 앱이 있습니다. 사용자가 재생 버튼을 클릭하면 기능이 실행되고 MP3 데이터를 찾고 플레이어 등을 설정하지만 사용자가 마음을 바꾸고 다른 트랙에서 클릭을 재생합니다. 이전 기능을 완전히 취소 할 수있는 방법이 있습니까? XHRequests를 중단 할 수는 있지만 모든 기능이 마음에 들었다. 어쩌면 JS 약속?JavaScript 비동기 함수를 중단하는 방법은 무엇입니까?
1
A
답변
2
자바 스크립트에서 동기 기능이 완료 될 때까지 실행됩니다. 다른 사용자 조치로 인해 중단되지 않습니다. 따라서 함수가 실행되고 플레이어를 설정하는 시나리오에서는 다음 사용자 이벤트가 처리되기 전에 해당 함수가 완료 될 때까지 실행됩니다. 따라서 자바 스크립트에서 동기 함수를 중단 할 수는 없습니다. 어쨌든 (웹 워커를 제외하고) 여기서는 논의하지 않습니다. 자바 스크립트는 함수가 실행되는 한 단일 스레드이므로, 완료 될 때까지 실행되고 다른 사용자 이벤트는 처리되지 않습니다.
그러나 함수에 비동기 작업 (예 : 아약스 또는 음악 파일을로드하는 플레이어를 통해로드하는 것과 같은)이있는 경우 비동기 작업을 중단 할 수 있는지 여부는 전적으로 특정 지원에 따라 결정됩니다 그 작업에서 - 일반적인 중단이 없습니다. 비동기 세부 정보를 제공하는 데 도움을 받으려면 실제 코드를 공개해야 자신이하는 일을 볼 수 있습니다.
약속은 비동기 작업을 중단하기위한 도구가 아닙니다. 사실, 비동기 작업에 대해 언제, 어떤 일이 일어 났는지에 대해보고하는 것과는 정반대의 도구입니다. 그것들은 그런 일이 일어나지 않게하고, 비동기 작업이 일어 났을 때 관찰자들에게 알립니다. StackOverflow의 질문의 경우는 일반적으로 그 옵션을 위해 무엇의 실제 분석 이론 토론에서 질문을 변경 때문에 당신이 당신의 실제 코드를 공개 할 경우
, 우리는 깊이있는 훨씬 더 도움이 될 수 있습니다 실제 코드.
관련 문제
- 1. iPhone에서 비동기 작업을 일시 중단하는 방법은 무엇입니까?
- 2. JavaScript : 난수 생성을 중단하는 방법은 무엇입니까?
- 3. 비동기 모드에서 javascript 함수를 실행하십시오.
- 4. JavaScript : 비동기 내부 함수 내부에서 외부 함수를 반환하는 방법은 무엇입니까?
- 5. NodeJS - 함수를 중단하는 방법?
- 6. JavaScript : 함수를 지연시키는 방법은 무엇입니까?
- 7. 코드를 사용하여 런타임시 matlab 함수를 중단하는 방법은 무엇입니까?
- 8. 배열을 기반으로 비동기 함수를 중첩하는 방법은 무엇입니까?
- 9. 비동기 함수를 일반 함수처럼 작동시키는 방법은 무엇입니까?
- 10. 약속없이 비동기 함수를 처리하는 방법은 무엇입니까?
- 11. 비동기 함수의 비동기 래핑 함수를 만드는 방법은 무엇입니까?
- 12. JavaScript에서 JavaScript 파일 다운로드를 두 번 중단하는 방법은 무엇입니까?
- 13. java에서 프로그램을 중단하는 방법은 무엇입니까?
- 14. 크롬 확장을 중단하는 방법은 무엇입니까?
- 15. MKNetworkOperation을 취소/중단하는 방법은 무엇입니까?
- 16. 대리자 AsyncCallback 함수에서 JavaScript 함수를 호출하는 방법은 무엇입니까?
- 17. MATLAB에서 실행중인 프로그램을 중단하는 방법은 무엇입니까?
- 18. 자바 스크립트 : 비동기 적으로 실행될 함수를 작성하는 방법은 무엇입니까?
- 19. JSON 문자열에서 javascript 함수를 호출하는 방법은 무엇입니까?
- 20. 서블릿에서 javascript 함수를 호출하는 방법은 무엇입니까?
- 21. 관리 빈에서 javascript 함수를 호출하는 방법은 무엇입니까?
- 22. ASP.NET의 확인란에서 javascript 함수를 호출하는 방법은 무엇입니까?
- 23. jQuery ajax에서 javascript 함수를 호출하는 방법은 무엇입니까?
- 24. JavaScript : 이벤트에서 호출되는 함수를 찾는 방법은 무엇입니까?
- 25. JavaScript 함수에서 Controller 함수를 사용하는 방법은 무엇입니까?
- 26. C# 코드에서 JavaScript 함수를 작성하는 방법은 무엇입니까?
- 27. javascript/jquery 함수를 비공개로 유지하는 방법은 무엇입니까?
- 28. perl에서 페이지의 javascript 함수를 실행하는 방법은 무엇입니까?
- 29. Javascript 코드 또는 함수를 디버깅하는 방법은 무엇입니까?
- 30. Pageload 중에 JavaScript 함수를 호출하는 방법은 무엇입니까?
기능에 따라 다르지만, 일부 마법 방법으로는 비동기 기능을 취소 할 수 없습니다. – adeneo
기능을 '취소'할 방법이 없습니다. API의 일부 여야합니다. 귀하의 예에서는 AJAX처럼 들리지만 취소는 불가능합니다. –
이미 수행 한 기능의 결과를 취소 할 수 없습니다. 그러나 귀하는 귀하의 게시물에이 문제가 없습니다. 모델을 재구성하십시오. 당신은 당신이 요구하는 것을 필요로하지 않습니다. –