同步ajax请求时,例如:
$.when(
$.get("/api/foo", { prm: 1 }),
$.get("/api/bar", { prm: 2 })
).done(function (data1, data2) {
doStuff(data1[0].Value, data2[0].Value);
});
我从延迟的$ .get调用中获取结果对象,这与我在调用$ .get时获得的结果不同。
$.get("/api/foo", { prm: 1 }, function (data) { doStuff(data.Value); });
基本上我需要的信息是传递给done()的对象的索引0(索引1处有“成功”字符串,索引2处有原始数据)。
我想知道结果对象何时以及如何以这种方式被更改,以及是否可以安全地始终注意索引0处的数据。
答案 0 :(得分:1)
依靠数据[0]是完全安全的,因为这是工作时的方式。 您的单一来电应如下所示:
$.get("/api/foo", { prm: 1 }, function (data, statusText, jqXHR) { doStuff(data.Value); });
但是你选择省略其他参数,这没关系。 现在更容易理解为什么使用jQuery。当强制你访问数据[0] ...因为data [0]是get结果的第一个参数,data [1]是状态文本,data [2]是jqXHR。