我正在使用Parse Baas库。我定义了一些调用各种Parse Cloud代码函数的函数。我目前对javascript承诺有基本的了解。我正在努力的一件事是如何处理以下
我有一个自定义功能,我可以从其他模块调用。
function CustomFunction()
{
var GameScore = Parse.Object.extend("GameScore");
var gameScore = new GameScore();
gameScore.set("score", 1337);
gamesScore.save().then(
function(object) {
// the object was saved.
// What do I return from here??
},
function(error) {
// saving the object failed.
// What do I return from here??
});
}
在某些情况下,我可能想在gamesScore.save()中失败。然后(函数(对象){}所以我不想只返回gamescore.save()。 现在,当我调用自定义函数时,它确实需要返回一个promise,因为其中包含的代码是异步的'。那么我从自定义函数中返回什么呢。
CustomFunction().then(
function(result) {
},
function(error) {
});
答案 0 :(得分:1)
由于gamesScore.save()
已经是承诺,您只需从CustomFunction
function CustomFunction() {
...
return gamesScore.save();
}
现在你应该能够CustomFunction
这样使用
CustomFunction().then(function(data) {
...
}, function(err) {
...
});
答案 1 :(得分:1)
然后.then()CustomFunction中的回调充当过滤器。如果您想首先更改已解决/拒绝的结果,您可以在那里执行此操作。否则,请勿使用.then()。只需返回.save()函数
function CustomFunction()
{
var GameScore = Parse.Object.extend("GameScore");
var gameScore = new GameScore();
gameScore.set("score", 1337);
return gamesScore.save();
}
然后,使用.done(result)或.fail(error)
来使用结果CustomFunction().done(function(result){ console.log(result); });