使用setTimeout JS执行的顺序

时间:2018-06-19 08:24:10

标签: javascript

我正在尝试使用timeout方法执行的函数定义全局变量值。我在这里面临的问题是无法摆脱时间间隔。

***不工作(但我希望目标变量在外面,以便我以后可以访问它。)

function demo() {
 var noOfGoals = 4;
 goal = "He has scored " + noOfGoals + " in 45 Mins";
}

setTimeout(function() {
 demo();
}, 2000);

console.log(goal);

****工作(但我不想从setTimeout访问它)

function demo() {
  var noOfGoals = 4;
  goal = "He has scored " + noOfGoals + " in 45 Mins"; 
}

setTimeout(function() {
  demo();
  console.log(goal);
}, 2000);

任何新想法或更好的应用程序,而不是我做了什么!

1 个答案:

答案 0 :(得分:0)

您无法从传递给setTimeout的函数中获取返回值。

对于你想做的事情,那就写成:

function demo() {
  var noOfGoals = 4;
  return goal = "He has scored " + noOfGoals + " in 45 Mins"; 
}


function launch_goal () { 
    setTimeout(function() {
        console.log(demo());
    }, 2000);
}  
launch_goal(); 

或者以其他方式执行此操作,您需要使用承诺