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

How to return Parse promise from cloud code module?

本文关键字:返回 Parse 承诺 模块 代码      更新时间:2023-09-26

是否有人知道如何从云代码模块返回一个承诺的结果?我在这里使用的例子,但它一直告诉我,选项是未定义的(或者什么都没有,如果我先检查if(选项)。

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

和想法吗?

编辑:我可以强制它工作,但调用:
module.function({},{
 success:function(res){
  //do something
 }, 
 error:function(err){
  //handle error
 }
})

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

不确定问题是模块还是承诺。下面的一些代码说明了这两种情况,创建一个带有返回承诺的函数的模块,然后从云函数调用它。

创建如下模块:

// 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);
    });
});