gpt4 book ai didi

JavaScript 异步问题

转载 作者:行者123 更新时间:2023-11-29 22:19:16 25 4
gpt4 key购买 nike

这是一个新手 JavaScript 问题,但我不太确定如何通过 google 寻求帮助,因为我不确定如何以简单的方式描述问题。

我有一个大的、有点复杂的 JSON,我需要对其进行操作,以便我可以以一种只获得国家、城市和销售额的列表的方式 reshape JSON。

JSON 本身对我来说不是问题,这是我收到它后想用它做的事情。基本上,我想从接收到的大型 JSON 创建 3 个单独的对象/数组,并让这 3 个单独的对象/数组可供 $.ajax 调用之外的使用访问。是的,我想我可以在 $.ajax 成功回调中完成所有这些,但我宁愿在其他地方完成所有 JSON 处理。我的伪 JavaScript 看起来像这样:

var model = {
countries: [],
cities: [],
sales: [],
set: function(data) {
//manipulate data here so that model.countries, model.cities, model.sales are populated
}
};


$.ajax({
url: 'example.com/sample.json',
success: function(data) {
model.set(data); //is this the right way to do this?
}
});

$('#countries').html(model.countries);
$('#cities').html(model.cities);
$('#sales').html(model.sales);​

但是因为 JavaScript 是异步执行的,所以最后 3 行总是空白,因为还没有收到 JSON。

所以我想我的问题是,如何将收到的 JSON 结果绑定(bind)到 $.ajax 范围之外的变量,以便我可以在页面的任何位置使用它?

最佳答案

简单的解决方案是这样的:

$.ajax({
url: 'example.com/sample.json',
success: function(data) {
model.set(data);
$('#countries').html(model.countries);
$('#cities').html(model.cities);
$('#sales').html(model.sales);​
}
});

如果你想要更框架化的东西,那么你可以看看类似 Backbone.js 的东西.

关于JavaScript 异步问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13338319/

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