0
我使用Parse.com写一些JavaScript代码。如何正确使用Parse/Promise?
说实话,我一直在读如何使用承诺,做了很多的研究,但仍无法弄清楚如何正确地使用它..
这里有一个场景:
- 我有两个表(对象)称为客户和InvoiceHeader
- 客户可以有多个InvoiceHeader秒。
- InvoiceHeader有一个名为“金额”的列,我希望每个客户的总金额为InvoiceHeader s。
例如,如果客户A有两个InvoiceHeader s的量30和20和客户端B已经什么都没有,结果我想在tempArray看到的是'50,0' 。
然而,用以下代码,它看起来就像是随机的。我的意思是有时候tempArray
得到'50,50'或者“50,0”。我怀疑这是由于Promise的错误使用。
请帮帮我。我一直在查看这些代码,并坚持了几天。
$(document).ready(function() {
var client = Parse.Object.extend("Client");
var query = new Parse.Query(client);
var tempArray = [];
query.find().then(function(objects) {
return objects;
}).then(function (objects) {
var promises = [];
var totalForHeader = 0;
objects.forEach(function(object) {
totalForHeader = 0;
var invoiceHeader = Parse.Object.extend('InvoiceHeader');
var queryForInvoiceHeader = new Parse.Query(invoiceHeader);
queryForInvoiceHeader.equalTo('headerClient', object);
var prom = queryForInvoiceHeader.find().then(function(headers) {
headers.forEach(function(header) {
totalForHeader += totalForHeader +
parseFloat(header.get('headerOutstandingAmount'));
});
tempArray.push(totalForHeader);
});
promises.push(prom);
});
return Parse.Promise.when.apply(Parse.Promise, promises);
}).then(function() {
// after all of above jobs are done, do something here...
});
});