gpt4 book ai didi

jQuery $.then 带有来自先前函数的参数

转载 作者:行者123 更新时间:2023-12-01 05:52:17 25 4
gpt4 key购买 nike

我有三个 ajax 调用。第二个应该接收第一个结果的参数,第三个应该接收第二个结果的参数。如:

var getYears = function getYears() {return $.ajax({....});};
var getMonths = function(year) {return $.ajax({...});};
var getDays = function(month, year) {return $.ajax({...})};

我对如何将它们链接到 $.when() 感到非常困惑。

到目前为止我所做的一切都很好,但我更喜欢使用 $.when() 方式,因为我稍后将在代码中引用结果..

    function init() {
var y, m, d;
getYears().then(function (years) {
var year = years.d[0];
y = years.d;
getMonths(year).then(function (months) {
var month = months.d[0].MonthNo;
m = months.d;
getDays(month, year).then(function (days) {
d = days.d;
}).done(function () {
return initialize = { years: y, months: m, days: d };
});
});
});
};

当我使用时:

$.when(
getYears(),
getMonths(//here i need to refer the result of getYears),
getDays(//here needs the result of getMonths).done(function()
{// do something else})
);

最佳答案

$.when() 接受用逗号分隔的 Promise(数组不起作用),然后一旦所有这些 Promise 都已解决,它会将它们传递给中的 then 函数由 $.when() 指定的顺序。这样您就不必担心哪个回调先完成。

例如:

$.when(getyears,getmoths,getdays).then(function(year,month, day){
console.log("today is: " + year + month + day);
});

为了在您需要在 ajax 调用上使用 $.deferred() 时传递这些 Promise,以便它们返回 Promise。

关于jQuery $.then 带有来自先前函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20246762/

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