125*_*748 3 javascript ajax jquery jquery-deferred
不久前,SO用户为我编写了这个函数,以返回可变数量的jQuery $.get()请求.第一部分是非常简单的,但是会有人elplain如何$.when(),apply()以及$.done()在互动.我一般不了解,但非常具体地说他们是如何访问$.get()返回的延迟对象.
function getHTML(qty_of_gets) {
var dfdArr = [],
i = 1;
while (i <= qty_of_gets) {
dfdArr.push($.get("get_test_" + i + ".php"));
i++;
}
$.when.apply(null, dfdArr).done(function () {
for (var i = 0; i < arguments.length; i++) {
$("#content").append(arguments[i][0]);
}
});
}
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 11
$.when返回一个新的promise,所以$.when().done()只需调用.done返回的promise $.when.
.apply允许您使用数组中的参数调用函数,而不是单独传递它们.所以
$.when.apply(null, dfdArr)
Run Code Online (Sandbox Code Playgroud)
(几乎*)相当于
$.when(dfdArr[0], dfdArr[1], dfdArr[2], ...);
Run Code Online (Sandbox Code Playgroud)
每个元素dfdArr都是一个承诺.
*除了this函数内部的值.
| 归档时间: |
|
| 查看次数: |
5973 次 |
| 最近记录: |