在我的 Parse Cloude 代码中,我需要运行几个连续的查询,每个查询都使用“find()”。
例子:
var promise = firstQuery.get(objectId).then(function(result1){
return secondQuery.find();
}).then(function(result2){
return thirdQuery.find();
}).then(function(result3) {
// here I want to use "result1", "result2" and "result3"
});
问题是:如何在最后的“then”语句中访问“result1”和“result2”,而不将它们分配给在父作用域中声明的变量。
我为什么要问这个问题:如果你嵌套了一堆你在循环中创建的 Promise 以使它们并行执行,那么你不能使用父作用域技巧(想象一下围绕上述语句的 for 循环,其中所有的 Promise 都是放入一个数组,然后使用“Parse.Promise.when”进行评估。它们都将同时开始修改父范围变量。)
我可以创建某种承诺对象,我可以在其中返回以下内容:
Parse.promise({result:result1,findResult:secondQuery.find()};
所以我可以通过执行从“result2”参数中获取值
result2.result
和
result2.findResult
我希望我说清楚。这不是很容易解释。