我在这里有些不知所措,因为从我在文档中看到的内容来看,这应该是正常工作的。我有三种可能需要保存的表格。如果第3个需要等待前2个,因为需要他们的id,返回。我设置了以下设置:
var recProm = user.saveData(...).then(function(response)){...}
var stdProm = user.saveData(...).then(function(response)){...}
if(recProm) promise_array.push(recProm);
if(stdProm) promise_array.push(stdProm);
$q.all(promise_array).then(function(response)) {...}
然而,$永远不会等待一切。我看到数组中有正确的承诺,但是当代码完成时,它只是简单地重定向回主页面。
我不确定我在这里做错了什么,因为我向$q传递了一系列承诺。任何帮助都将不胜感激。
this.saveData= function (list, model, successMsg, errorMsg) {
return $.ajax({
method: 'POST',
url: SPUrl + "/_api/web/lists/getByTitle('" + list + "')/items",
contentType: "application/json; odata=verbose",
headers: {
"X-RequestDigest": $rootScope.formRequestDigest,
"Accept": "application/json; odata=verbose"
},
dataType: 'text json',
data: JSON.stringify(model),
timeout: 0
}).then(function (data, request) {
successMsg !== undefined && successMsg !== null ? alertify.success(successMsg) : null;
return data.d;
}, function (error) {
console.log(error);
errorMsg ? alertify.error(errorMsg + ' Error: ' + error.name + ' Status: ' + error.status) : null;
return "error";
});
};