빠른 질문입니다. 새 페이지로 이동하기 전에 Angular를 5 초 동안 잠자 게하려면 어떻게해야합니까?
내 기능 내에서 이것을 시도하고 있지만 작동하지 않는 것 같습니다.
setTimeout(() => {
console.log('sleep');
}, 5000);
this.router.navigate(['/question', this.getQuestionID() + 1]);
...
이는 setTimeout
코드 실행을 차단하지 않고 대신 콜백 함수 실행을 예약 하기 때문에 발생합니다 . 즉, 탐색 호출은 콜백 외부에 있습니다. 즉, 콜백 예약이 실행될 때가 아니라 바로 실행됩니다.
올바른 코드는 다음과 같습니다.
setTimeout(() => {
console.log('sleep');
this.router.navigate(['/question', this.getQuestionID() + 1]);
// And any other code that should run only after 5s
}, 5000);
노트 :
사용자가 tge 5s 이전에 각도 라우터 링크를 사용하여 다른 곳으로 이동하려고하면 5 초 후에 탐색을 계속 실행하여 이상한 동작을 유발합니다.
다음 중 어느 것도해서는 안됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다