Jquery 当promise需要其返回的数据时,如何使用$.when().then()?
如果我的问题没有道理,我首先道歉 我一直在跑进比赛状态,然后承诺,到目前为止还不错,但后来我又开始遇到另一个比赛状态。我在document.ready上填充了3个下拉列表,我还有一个填充一组字段的函数。所以我试着把所有的东西重新排序,但都不起作用。这就是我所拥有的Jquery 当promise需要其返回的数据时,如何使用$.when().then()?,jquery,Jquery,如果我的问题没有道理,我首先道歉 我一直在跑进比赛状态,然后承诺,到目前为止还不错,但后来我又开始遇到另一个比赛状态。我在document.ready上填充了3个下拉列表,我还有一个填充一组字段的函数。所以我试着把所有的东西重新排序,但都不起作用。这就是我所拥有的 var orderStatusPromise = LoadOrderSummaryOrderStatus(); var jobTypePromise = LoadOrderSummaryJobType(); var leadSou
var orderStatusPromise = LoadOrderSummaryOrderStatus();
var jobTypePromise = LoadOrderSummaryJobType();
var leadSourcePromise = LoadOrderSummaryLeadSource();
orderStatusPromise.done(function (data) {
ShowOrderSummaryOrderStatus(data);
});
jobTypePromise.done(function (data) {
ShowOrderSummaryJobType(data);
});
leadSourcePromise.done(function (data) {
ShowOrderSummaryLeadSource(data);
});
我想做的是使用$.when().then()并将所有承诺放在$.when()和.then()中,运行填充字段的函数,这将最终消除竞争条件。
.done(…)中的数据被用来填充下拉列表。我弄明白了如何将承诺添加到$.when().then()中,我需要做的是从.done()语句中删除分号,并用逗号替换它们
var orderStatusPromise = LoadOrderSummaryOrderStatus();
var jobTypePromise = LoadOrderSummaryJobType();
var leadSourcePromise = LoadOrderSummaryLeadSource();
var countiesPromise = LoadOrderSummaryCounties();
$.when(
orderStatusPromise.done(function (data) {
console.log("OrderStatus done");
ShowOrderSummaryOrderStatus(data);
}),
jobTypePromise.done(function (data) {
console.log("JobType done");
ShowOrderSummaryJobType(data);
}),
leadSourcePromise.done(function (data) {
console.log("OrderSummary done");
ShowOrderSummaryLeadSource(data);
}),
countiesPromise.done(function (data) {
console.log("Counties done");
ShowOrderSummaryCounties(data);
})
).then(
FillOrderSummaryCustomerFields(HomeStorage.Keys.OrderID));
好的,你已经写下了你想做的事情,听起来很可靠。是什么阻止了你这么做?@Tomalak,我想我已经弄明白了,并且开始工作了,但是仍然发生了一些比赛情况,这在你提供的小背景下是不可能解决的。@Tomalak,我是否应该开始一个关于比赛条件的新问题,并提供所有必要的代码,或者只是提出我让它工作了,并且我仍然得到了比赛条件。如果你问我,这个问题在没有任何额外信息的情况下没有什么价值。想象一下,作为一个不参与其中的第三人,他试图从中学到一些东西。直到现在还不清楚到底是什么问题。既然还没有人回答,你应该充实这个问题,直到它包含足够的信息。