Backbone.js 使用Promises解析云代码的多个查询
我有两个问题:Backbone.js 使用Promises解析云代码的多个查询,backbone.js,parse-platform,parse-cloud-code,Backbone.js,Parse Platform,Parse Cloud Code,我有两个问题: 下面的示例是在单个云代码函数中执行多个解析查询的正确方法吗 下面的示例是否将使用oneHTTP请求(当我调用logbookEntries时)提供我正在查询的所有数据,然后在我的帐户上计算为two解析请求,因为这是两个解析查询 代码如下: Parse.Cloud.define("logbookEntries", function(request, response) { //::: Query 1 ::: var firstQuery = new Parse.Query(
logbookEntries
时)提供我正在查询的所有数据,然后在我的帐户上计算为two解析请求,因为这是两个解析查询Parse.Cloud.define("logbookEntries", function(request, response) {
//::: Query 1 :::
var firstQuery = new Parse.Query("Logbook");
var returnData = [];
firstQuery.find().then(function(firstResults) {
returnData[0] = firstResults;
}).then(function(result) {
//::: Query 2 :::
var secondQuery = new Parse.Query("Logbook");
secondQuery.find().then(function(secondResults))
returnData[1] = secondResults;
}).then(function(result) {
response.success(returnData);
}, function(error) {
response.error(error);
});
});
提前谢谢
Parse.Cloud.define("logbookEntries", function(request, response) {
//::: Query 1 :::
var firstQuery = new Parse.Query("Logbook");
var returnData = [];
firstQuery.find().then(function(firstResults) {
returnData[0] = firstResults;
var secondQuery = new Parse.Query("Logbook");
return secondQuery.find();
}).then(function(result) {
returnData[1] = result;
response.success(returnData);
}, function(error) {
response.error(error);
});
});
或者,一种更好的结构方式是:
Parse.Cloud.define("logbookEntries", function(request, response) {
var firstQuery = new Parse.Query("Logbook");
var secondQuery = new Parse.Query("Logbook");
var promises = [];
promises.push(firstQuery.find());
promises.push(secondQuery.find());
Parse.Promise.when(promises).then(function(result1, result2) {
var returnData = [];
returnData[1] = result1;
returnData[2] = result2;
response.success(returnData);
}, function(error) {
response.error(error);
});
}
只是为了更新Wain的结构化代码: 当提供数组时,Promise.when返回数组,因此正确的代码应该是
Parse.Promise.when(promises).then(function([result1, result2]) {
由于不需要重新打包数组,因此只需
Parse.Promise.when(promises).then(function(result) {
response.success(result);
更多信息。第二个示例非常简单——谢谢!我在Parse Promise docs()中没有看到
wait
方法,但我假设它的意思是“在两个承诺都实现之前不要发送响应”。对不起,输入错误,当有意义时应该是。再次感谢。