如何从云代码模块返回Parse承诺?

时间:2015-09-03 18:48:39

标签: javascript parse-platform module cloud promise

有人知道如何从云代码模块返回Promise的结果吗?我正在使用示例here,但它一直告诉我选项是未定义的(如果我首先检查if(选项),则没有任何选项。

我调用函数module.function作为承诺,但仍然没有得到结果。

想法?

编辑:我可以强迫它工作但是打电话:

module.function({},{
 success:function(res){
  //do something
 }, 
 error:function(err){
  //handle error
 }
})

但是这并不是很好,因为1)我必须把空对象放在那里2)我不能强迫对象像承诺一样工作,因此失去了链接的能力。

1 个答案:

答案 0 :(得分:4)

不确定问题是否与模块或承诺有关。这里有一些代码说明了两者,创建了一个带有返回promise的函数的模块,然后从云函数中调用它。

创建一个这样的模块:

// in 'cloud/somemodule.js'

// return a promise to find instances of SomeObject
exports.someFunction = function(someValue) {
    var query = new Parse.Query("SomeObject");
    query.equalTo("someProperty", someValue);
    return query.find();
};

通过要求包括模块:

// in 'cloud/main.js'
var SomeModule = require('cloud/somemodule.js');

Parse.Cloud.define("useTheModule", function(request, response) {
    var value = request.params.value;
    // use the module by mentioning it
    // the promise returned by someFunction can be chained with .then()
    SomeModule.someFunction(value).then(function(result) {
        response.success(result);
    }, function(error) {
        response.error(error);
    });
});