gpt4 book ai didi

javascript - $.when() 与 Deferreds 数组不调用完成操作

转载 作者:行者123 更新时间:2023-12-03 05:21:04 25 4
gpt4 key购买 nike

我正在尝试在数组中使用一组可变的延迟函数以及$.when()。这些函数从服务器获取数据并将其呈现在 DOM 中。完成所有这些后,将加载一些脚本并执行一些加载后操作。

这是我正在使用的:

function loadAllGames(updateGames, updatePlayoffs) {
var deferredLoads = [];
if (updateGames !== false)
deferredLoads.push($.Deferred(loadGames));

if (updatePlayoffs !== false)
deferredLoads.push($.Deferred(loadPlayoffs));

$.when.apply($, deferredLoads).done(loadPostGamesLoadData);
}

问题是 loadPostGamesLoadData 从未被调用。

loadGamesloadPlayoffs 都返回 promise :

function loadGames() {
$.get('{% url wave_spinner_template %}', {message: 'Loading games...'}, function (data) {
$('#weeks').html(data);
});

return $.ajax({
url: "{% url weeks season.id %}",
success: function (data) {
$('#weeks').html(data);
},
error: function () {
console.log("Error loading games.");
}
});
}

function loadPlayoffs() {
$.get('{% url wave_spinner_template %}', {message: 'Loading playoffs...'}, function (data) {
$('#playoffs').html(data).children('.spinner-container').addClass('border-top');
});

return $.ajax({
url: "{% url playoffs season.id %}",
success: function (data) {
var $playoffs = $('#playoffs');
if (!$playoffs.length) {
$playoffs = $('<div>', {id: 'playoffs'});
$('#weeks').after($playoffs);
}
$playoffs.html(data);
},
error: function () {
console.log("Error loading playoffs.");
}
});
}

最佳答案

删除Deferred调用,因为$.ajax已经返回了一个deferred。

function loadAllGames(updateGames, updatePlayoffs) {
var deferredLoads = [];
if (updateGames !== false)
deferredLoads.push(loadGames());

if (updatePlayoffs !== false)
deferredLoads.push(loadPlayoffs());

$.when.apply($, deferredLoads).done(loadPostGamesLoadData);
}

关于javascript - $.when() 与 Deferreds 数组不调用完成操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41376908/

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