gpt4 book ai didi

javascript - $.when、apply() 和 $.done() 在此函数中如何交互?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:53:31 24 4
gpt4 key购买 nike

不久前,一个 SO 用户为我编写了这个函数来返回可变数量的 jQuery $.get() 请求。第一部分非常简单,但有人会解释一下 $.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]);

}

});
}

最佳答案

$.when 返回一个新的 promise ,所以 $.when().done() 只是在返回的 promise 上调用 .done通过 $.when

.apply允许您使用数组中的参数调用函数,而不是单独传递它们。所以

$.when.apply(null, dfdArr)

(几乎*)等同于

$.when(dfdArr[0], dfdArr[1], dfdArr[2], ...);

dfdArr 中的每个元素都是一个 promise 。


*函数内部this的值除外。

关于javascript - $.when、apply() 和 $.done() 在此函数中如何交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565985/

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