비동기 간격이 계속되는 것을 중지하는 데 중요한 문제가 있습니다.
무한 간격이 시작됩니다.
task.interval = setIntervalAsync(
async() => await this.sendTimer(task, savedGuild), interval);
버그를 생성하는 클래스 : https://pastebin.com/qq5tReFq
아무것도하지 않는 라인 :
while (task.interval)
clearIntervalAsync(task.interval);
이것이 도움이되지 않는다면 미안하지만, 나는 많은 다른 유형과 간격을 시도했고 언제 endTimers
호출 될 때 아무 일도 일어나지 않은 것처럼 간격이 계속됩니다. 도움을 보내주세요.
const guildTimers = timers.currentTimers.get(req.params.id);
if (!guildTimers || guildTimers?.length <= 0)
return res.json([]);
for (const timer of guildTimers)
delete timer.interval; // <- the cause of the problem
나는 문제를 찾을 수 있었다. 사용자가 예약 된 작업을 볼 수 있도록하는 API의 외부 파일에서 발견되었습니다.
delete timer.interval
간격에 대한 참조를 제거 했으므로 timer.interval
정의되지 않은 상태 로 재설정되는 것을 중지했습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다