繁体   English   中英

jQuery在等待promise解析时无法获得$ .when工作

[英]jquery cannot get $.when to work when waiting for promises to resolve

我的情况使我发疯,因为我似乎无法正常发挥作用。 我遇到的情况是可以选择总共填写3个表格。 但是,并非总是需要填写2个,只需要填写一个即可。 问题是,如果其他任何一个表单都已填写,则必须填写的主要表单需要等待,因为它需要在保存之前将其ID作为查询存储在主要表单中。 这应该是相对简单的,但是我已经尝试了几乎所有内容,并且在正常工作以等待承诺解决时无法获得$.。

我有一个服务,我在其中调用函数postItem,这是一个$ ajax发布调用

我正完全按照此步骤操作,但不起作用:

https://dzone.com/articles/promises-and-deferred-objects

var promise1, promise2;
var promise_array = [];

if(vm.receivables) {
 promise1 = user.postDealItem(args....).then(function(response) {
           vm.model.recId = response.Id;
           return response
});
}

if(vm.standard) {
 promise2 = user.postDealItem(args...).then(function(response) {
           vm.model.stdId = response.Id;
           return response
});
}

if(promise1 != null) promise_array.push(promise1);
if(promise2 != null) promise_array.push(promise2);

$.when.apply($,promise_array).done(function(response) {
    //never gets to this point
});

在需要其他两种表单之前,我只有一个表单可以完成,然后完成后,我保存了其他几个子列表,并且通过链接诺言实现了工作而没有问题...

现在,它超出了代码$ .when的部分,到达了代码块的末尾,然后进入了一系列的角度函数,然后进入了tracedigest ++,然后在该处的某个地方出错并重新加载了主页。 我正在测试仅运行另一种形式,并且初始形式可以正确保存,但诺言无法正确解决...

任何帮助将不胜感激,我不知所措,为什么它不起作用,因为它看起来应该是很好的方式...

在我看来,您只是在postDealItem之后缺少() 将显示user.postDealItem.then(function(response) {的两个位置更改为user.postDealItem().then(function(response) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM