gpt4 book ai didi

javascript - 如何使此函数在两个 $.getJSON 函数之后发生?

转载 作者:行者123 更新时间:2023-12-02 22:09:45 24 4
gpt4 key购买 nike

最初,我只使用了 $(document).ready(update()); 但这不起作用,因为第一个 $.getJSON 太慢的。当我添加 setTimeout 时,第一个 $.getJSON 加载,但第二个没有加载。现在,我明白为什么会发生这种情况(因为 JSON 是异步的),但我不明白应该如何修复它。我一直在研究 .then,但每次使用它时,似乎我要么使用不正确,要么它没有改变情况。

// Original Code

$.getJSON("workshops.json", function(data){
workshopData = data;
});

$.getJSON("summers.json", function(data){
summerData = data;
});

$(document).ready(function(){
setTimeout(update(), 0);
});
// Attempt at .then
function gatherData(){
$.getJSON("workshops.json", function(data){
workshopData = data;
});

$.getJSON("summers.json", function(data){
summerData = data;
});
};

gatherData().then(function(e){
update();
console.log("test");
});

最佳答案

如果您还没有准备好使用Promiseasync/await。您现在可以坚持“回调 hell ”:

$.getJSON("workshops.json", function(data){
workshopData = data;
$.getJSON("summers.json", function(data){
summerData = data;
update();
console.log("test");
});
});

当一个请求编译时,它将调用下一个请求的嵌套回调。当它完成时,第二个回调将调用 update

关于javascript - 如何使此函数在两个 $.getJSON 函数之后发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59597060/

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