0
我使用parse.com作爲我的後端。 我已經提出了下面的雲代碼,它給了我{u'code': 141, u'error': u'success/error was not called'}
代碼。我知道我在第一次成功後沒有進行response.success調用,但是我正在使用名爲nextSaleRate的鏈接函數進行調用。 有什麼辦法解決它?parse.com上的JavaScript異步函數雲
下面是完整的代碼:
function SaleWithRate(){
saleId = undefined;
rating = 0.0;
}
function nextSaleRate(saleList, nextSale, arr, response){
if(nextSale < saleList.length) {
var sale = new SaleWithRate();
sale.saleId = saleList[nextSale].id;
//creating ShaleSale object for Rates query
var ShaleSale = Parse.Object.extend("ShaleSale");
var saleForRate = new ShaleSale();
saleForRate.id = sale.saleId;
//query
var rateQuery = new Parse.Query("ShaleSaleRate");
rateQuery.equalTo("saleId", saleForRate);
rateQuery.find({
success: function(rateList) {
var sum = 0;
var index = 0;
for(var j = 0; j < rateList.length; j++) {
index++;
sum += rateList[j].get("rate");
if(index === 0) {
sale.rating = 0;
}
else {
sale.rating = sum/index;
}
arr.push(sale);
nextSale++;
nextSaleRate(saleList, nextSale, arr, response);
}
},
error: function() {
response.error("rate lookup failed");
}
});
}
else {
console.log("when do I get in" + nextSale);
response.success(arr);
}
}
Parse.Cloud.define("getSalesWithRate", function(request, response){
var query = new Parse.Query("ShaleSale");
query.ascending("createdAt");
//query.notContainedIn("objectId", request.params.saleIds);
query.find({
success: function(results) {
var arr = new Array();
nextSaleRate(results, 0, arr, response);
},
error: function() {
response.error("sale lookup failed");
}
});
});
我改變了我的代碼,因爲你建議@Hector拉莫斯,但我仍然得到同樣的錯誤。我編輯了這個問題,現在我將響應對象傳遞給'nextSaleRate'。 – vlio20
有一些錯誤(邏輯和語法),所以糾正他們後,做@Hector拉莫斯建議所有工作精美!謝謝!!! – vlio20