2016-06-11 2 views
-2

setTimeout을 추가했지만 작동하지 않습니다. 나는 소리의 끝의 5 초 후에 질문을 보여주고 싶다.반환 값에서 작동하지 않는 setTimeout()

self.getQuestionText = function() { 

    startSound('levelq', false); 
    setTimeout(function() { 
    return self.questions[self.level() - 1].question;}, 5000); 

} 
+3

가능한 복제 [자바 스크립트의 setTimeout 함수에서 값을 반환 만드는 방법] (http://stackoverflow.com/questions/ 25129057/how-to-make-javascript-settimeout-return-value-in-a-function) –

+0

의미심장하지 마십시오 ** 미국에 나옵니다 **. 귀하의 질문에 명확하고 완전한 정보로 질문하십시오. –

+0

내가 뭘 잘못 했니? 나는 세미콜론 후에도 여전히 작동하지 않는다고 대답했다 ... –

답변

0

setTimeout() 비동기이며 콜백 함수의 값을 반환합니다. js의 구조를 변경하십시오.

대신 :

self.getQuestionText = function() { 

    startSound('levelq', false); 
    setTimeout(function() { 
     return self.questions[self.level() - 1].question; 
    }, 5000); 

    } 

// The rest of the code 

사용 콜백 구조 :

self.getQuestionText = function() { 

    startSound('levelq', false); 
    setTimeout(function() { 
     self.getQuestionText = self.questions[self.level() - 1].question; 

     // The rest of the code 
    }, 5000); 

} 
+0

질문이 아직 .... 표시되지 않고 잘 작동하는 소리입니다. –

+0

@MuhammadDanish이 답변이이 코드가 작동하지 않는 일반적인 이유이기 때문에 앞으로 다른 사람들을 위해이 질문을 남겨 두겠습니다. 한편 질문을 수정하고 코드를 추가하십시오. 질문을 표시하려고하는 코드를 추가하십시오 ('self.getQuestionText = ...'행 뒤에 무엇입니까? 변수로 무엇을하려고합니까?). 관련 html도 추가하십시오. 아마 거기에 더 많은 버그가있을 것입니다. –

+0

전체 코드를 게시했습니다. 이 코드는 퀴즈 게임에서 현재 질문의 질문 텍스트를 잡는 데 사용됩니다. –

관련 문제