Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript setTimeout()在返回值中不工作_Javascript - Fatal编程技术网

Javascript setTimeout()在返回值中不工作

Javascript setTimeout()在返回值中不工作,javascript,Javascript,我添加了setTimeout,但它不起作用。我想在声音结束的5秒后显示问题 self.getQuestionText = function() { startSound('levelq', false); setTimeout(function() { return self.questions[self.level() - 1].question;}, 5000); } setTimeout(),并在回调函数中返回值。更改js的结构 而不是: self.getQ

我添加了
setTimeout
,但它不起作用。我想在声音结束的5秒后显示问题

self.getQuestionText = function() {

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

 }
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);

}

可能是重复的,不要对我们毫无意义地大喊大叫。问你的问题,要清楚,要有充分的信息。我做错了什么????我回答说在分号之后,它仍然不起作用……问题是setTimeout是异步的。getQuestionText函数以setTimeout结束。您需要创建一个在超时后触发的回调。@MuhammadDanish因为这个答案是这个代码无法工作的一般原因,所以我以后会把它留给其他人。同时,请编辑您的问题并添加更多代码。在您试图显示问题的地方添加代码(在
self.getQuestionText=…
行之后是什么以及您试图对变量执行的操作)。添加相关的html。你可能还有一些错误。我已经发布了完整的代码。该代码用于在问答游戏中获取当前问题的问题文本。如果不添加setTimeout(),则工作正常。但我需要在声音结束后加上5秒的延迟。这不是完整的代码,但无论如何,如果你有任何错误,请发布它们