我有一些像这样运行的代码,它按预期工作。
<script>
$.when(
$.getJSON(url1),
$.getJSON(url2),
$.getJSON(url3),
).done(function(data1, data2, data3){
//do stuff with data1, data2, data3
});
</script>
我试图简化这样的调用
class PageOne(PageFrame)
第一个代码有效,但第二个代码没有。我似乎无法获得第二个代码。我有什么东西不见了吗?!
答案 0 :(得分:-1)
为每个返回响应数据的then()
添加$.getJSON
$.when(
$.getJSON('data.json').then(res => res),
$.getJSON('data2.json').then(res => res),
$.getJSON('data3.json').then(res => res)
).done(function(data1, data2, data3) {
//do stuff with data1, data2, data3
})
的 DEMO 强>
答案 1 :(得分:-1)
在第二个示例中,data1,data2和data3是包含响应文本,状态和jqXHR对象的长度为3的列表,而不是像第一个示例中那样只是JSON数据。
$.when(
$.getJSON(url1),
$.getJSON(url2),
$.getJSON(url3),
).done(function(data1, data2, data3){
//do stuff with data1[0], data2[0], data3[0]
});
另一件需要考虑的事情是JQuery希望您的返回类型为JSON,因此如果您的服务器响应不包含“Content-Type:application / json”,则不会触发完成回调。