gpt4 book ai didi

javascript - Jquery/JS 范围

转载 作者:行者123 更新时间:2023-11-28 11:38:06 25 4
gpt4 key购买 nike

这可能很简单,但它难倒了我。我试图将 javascript 中的变量返回到函数范围之外的另一个变量。由于某种原因,分配没有发生。这是我的代码:

var time = Math.round(((new Date()).getTime())/1000);

// first call to get data
var power_now = get_data(<%= @user.id %>, time);

function get_data(user_id, timestamp){
var targetURL = "get/user_data?time_now="+timestamp+"&user_id="+user_id;
var power = 0;

$.get(targetURL, function(data){
power = data[0]['power'];
alert(power);
})

return power;
}

$('body').html('<h1>'+power_now+','+power_then+'</h1>')

如果我将alert(power)放在.get函数中,则该值是正确的;但是,如果我将其放在 .get 函数之外,则该值为 0。

也许我遗漏了一些关于 javascript 范围界定的内容?

谢谢!

最佳答案

get 是带有一些特定参数设置的 .ajax 的同义词。 AJAX 中的第一个 A 是异步的。这意味着代码不会立即执行,它会发送请求并继续前进。因此,直到 return 语句之后才会对该变量进行赋值。

相反,您应该将代码移至回调中:

$.get(targetURL, function(data){
power = data[0]['power'];

$('body').html('<h1>'+power_now+','+power_then+'</h1>')
})

关于javascript - Jquery/JS 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com