Javascript setTimeout JS的执行顺序
我试图从一个用timeout方法执行的函数中定义一个全局变量值。我现在面临的问题是无法摆脱时间间隔 ***不起作用(但我希望目标变量在外部,以便以后可以访问它) ****正在工作(但我不想从setTimeout访问它)Javascript setTimeout JS的执行顺序,javascript,Javascript,我试图从一个用timeout方法执行的函数中定义一个全局变量值。我现在面临的问题是无法摆脱时间间隔 ***不起作用(但我希望目标变量在外部,以便以后可以访问它) ****正在工作(但我不想从setTimeout访问它) 任何新的想法或比我做的更好的方法 您无法从传递给setTimeout的函数中获取返回值 对于您想做的事情,可以写为: function demo() { var noOfGoals = 4; return goal = "He has scored " + noOfGoa
任何新的想法或比我做的更好的方法 您无法从传递给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();
或者用另一种方法,你需要使用承诺你能解释一下你真正想要实现什么吗?我还不明白这一点……您必须在函数中使用
return
来调度函数,以便以后执行。它立即返回,然后console.log()
尝试访问一个尚未设置的变量(goal
)。@为什么?我希望“goal”是一个全局变量,可以在程序中的任何地方访问,但我也无法摆脱timeInterval函数。。有什么想法吗?这个解决方案与OP已经拥有并且不喜欢的解决方案有何不同?他不是通过setTimeout访问的
function demo() {
var noOfGoals = 4;
goal = "He has scored " + noOfGoals + " in 45 Mins";
}
setTimeout(function() {
demo();
console.log(goal);
}, 2000);
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();