gpt4 book ai didi

javascript - 使用getJSON时,如何抓取响应数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:27:11 25 4
gpt4 key购买 nike

发生了一些奇怪的事情...我有以下功能:

getInviteLink : function() {
var me = this,
invite_url;

$.getJSON('get_invite_code.json', function(data) {
console.log(data.invite_url);
invite_url = data.invite_url;
});

console.log(invite_url)

return invite_url;
},

运行时,第一个控制台日志返回正确的值。但是,在第二个控制台日志中没有任何内容。为什么不能从 getJSON 函数内部设置 invite_url?

谢谢

最佳答案

因为getJSON方法是异步的。发生了什么……

getInviteLink : function() {  // this function is called...
var me = this,
invite_url; // happens right away

$.getJSON('get_invite_code.json', function(data) {
// Step 2, these statements don't happen until later
// -- when the response is received
console.log(data.invite_url); // this
invite_url = data.invite_url;
}); // Step 1. the getJSON is called right away

console.log(invite_url) // this happens right after the
// the getJSON is called, but before
// it gets a response. Thus no data when the log
// statement is invoked

return invite_url; // also no data (yet) when this return statement
// is executed
},

已添加 要修复您的软件,您需要意识到在从服务器收到 JSON 响应之前,您无法对 invite_url 执行任何操作。 -- 如果您的客户端遇到网络问题或服务器问题,则可能永远无法收到。

您可以将一个函数传递给您的 getJSON 调用。该函数将使用 invite_url。同时,您可以为客户做其他事情。

如果在收到响应之前您的软件无事可做,则设置一个忙碌指示器(一个旋转的圆圈或其他东西),然后启动 json 请求并让函数在您收到响应时取消忙碌指示器.

有关此内容的更多信息,请参阅 jQuery json 文档。

关于javascript - 使用getJSON时,如何抓取响应数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380175/

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