Parse platform 解析承诺。跨承诺访问变量
解析承诺。我不熟悉使用承诺。下面是一个相当简单的例子。因此,我从一个承诺中得到的结果,我不知道如何将它传递给下一个承诺。非常感谢你的想法!我尝试了几个想法。除了最后一个“硬编码”的想法外,其他都不管用Parse platform 解析承诺。跨承诺访问变量,parse-platform,Parse Platform,解析承诺。我不熟悉使用承诺。下面是一个相当简单的例子。因此,我从一个承诺中得到的结果,我不知道如何将它传递给下一个承诺。非常感谢你的想法!我尝试了几个想法。除了最后一个“硬编码”的想法外,其他都不管用 假设您正在使用自定义承诺,您可以通过承诺结果的成功回调将承诺的结果传递给另一个 extends.foo = function(){ var promise = new Parse.Promise(); var query = new Parse.Query(Parse.User
假设您正在使用自定义承诺,您可以通过承诺结果的成功回调将承诺的结果传递给另一个
extends.foo = function(){
var promise = new Parse.Promise();
var query = new Parse.Query(Parse.User);
query.equalTo("name","Joe");
query.find().then(function(results) {
if (results.length > 0)
promise.resolve(results[0]);
else
promise.reject(-2);
}, function(error) {
promise.reject(-1);
});
return promise;
}
extends.foo2 = function(){
var promise = new Parse.Promise();
this.foo().then(function(result){
// success case
promise.resolve({uselessParam:123,firstResult:result})
},function(error){
// error case
promise.reject(error); // so, -1 or -2 returned by the promise in foo()
});
return promise;
}
// usage
extends.foo3 = function(){
this.foo2().then(function(result){
console.log(result.uselessParam); // added in the foo2()
console.log(result.firstResult); // returned by the foo() and added again in the foo2()
},function(error){
console.log(error); // so, -1 or -2 returned by the promise in foo()
});
}
您还可以在主函数中定义一个变量,在该函数中使用承诺(但不使用承诺),以便按承诺设置承诺
希望能有帮助!Luca:谢谢。我很难理解你的代码。下一个承诺将传递什么?诀窍是在他的Promise.resolve方法的承诺“1”中传递一个值“hello”(这意味着你在使用它时能够在成功回调中读取的值)。我创建了一些函数,它将promise作为函数结果返回。当您在query.find()中进行查询时,“.then()”方法将“success callback”作为第一个参数,将“error callback”作为第二个参数。在他的成功回调中,例如将其写入“function(result){..}“您可以从结果中检索传递的hello值,在该结果中,您以前已使用promise.resolve进行了分配
extends.foo = function(){
var promise = new Parse.Promise();
var query = new Parse.Query(Parse.User);
query.equalTo("name","Joe");
query.find().then(function(results) {
if (results.length > 0)
promise.resolve(results[0]);
else
promise.reject(-2);
}, function(error) {
promise.reject(-1);
});
return promise;
}
extends.foo2 = function(){
var promise = new Parse.Promise();
this.foo().then(function(result){
// success case
promise.resolve({uselessParam:123,firstResult:result})
},function(error){
// error case
promise.reject(error); // so, -1 or -2 returned by the promise in foo()
});
return promise;
}
// usage
extends.foo3 = function(){
this.foo2().then(function(result){
console.log(result.uselessParam); // added in the foo2()
console.log(result.firstResult); // returned by the foo() and added again in the foo2()
},function(error){
console.log(error); // so, -1 or -2 returned by the promise in foo()
});
}