gpt4 book ai didi

javascript - 如何在 $.when 函数中获取 getjson promise 的结果?

转载 作者:行者123 更新时间:2023-11-30 12:14:02 25 4
gpt4 key购买 nike

使用以下代码,我尝试仅在两个 getjson 调用都完成时将 2 个 getjson 调用的数据获取到数组中。代码给我这个错误:

resultFromUrl1.feed is undefined
var entry1 = resultFromUr11.feed.entry;

我查看了 f12,我看到两个 getjson 都成功执行了,但是没有数据被放入数组中!如何解决这个错误?此外,我应该使用 $.when(url1Promise, url2Promise).then 还是 $.when(url1Promise, url2Promise).done ?

<javascript>
var files = new Array();

function pushtoArray() {

//first getjson call
var url1 = "https://spreadsheets.google.com/feeds/list/xxxxx/xxxxx/public/values?alt=json";
var url1Promise = $.getJSON(url1, function (data) {
console.log("url1 success");
});//end of ajax call

//second getjson call
var url2 = "https://spreadsheets.google.com/feeds/list/xxxxx/xxxxx/public/values?alt=json";
var url2Promise = $.getJSON(url2, function (data) {
console.log("url2 success");
});//end of function

$.when(url1Promise, url2Promise).then(function (resultFromUrl1, resultFromUrl2) {
var entry1 = resultFromUrl1.feed.entry;
var entry2 = resultFromUrl2.feed.entry;

var entry = entry1.concat(entry2);

$(entry).each(function () {
// Column names are name, age, etc.
count++;
files.push({ url: this.gsx$url.$t, filename: this.gsx$name.$t });
alert(files.length);
print_r(files);
console.log(files);


});


});
}//end of function
</javascript>
<body onload="pushtoArray()">

最佳答案

jQuery ajax 函数与 $.when() 一起使用有点麻烦。 resultFromURL1 中的内容实际上是一个包含三个值的数组,如下所示:[data, textStatus, jqXHR]

因此,您需要更改为:

var entry1 = resultFromUrl1[0].feed.entry;
var entry2 = resultFromUrl2[0].feed.entry;

此外,您应该向您的$.when().then() 构造添加一个错误处理程序,这样您就可以查看您的getJSON() 中是否发生了任何错误> 通话。

关于javascript - 如何在 $.when 函数中获取 getjson promise 的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32916314/

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