Parse platform 在云代码中,连续多次调用Parse.cloud.run函数

Parse platform 在云代码中,连续多次调用Parse.cloud.run函数,parse-platform,promise,parse-cloud-code,Parse Platform,Promise,Parse Cloud Code,假设您有一个“define”Parse.com云代码函数 Parse.Cloud.define("exampleDefineFunction", function(request, response) { ... response.success("ok") ... response.error("doh") }); 我想做另一个云代码函数 哪些调用连续多次定义函数 一个等待下一个,就像在一个 可以这样做吗?您是否考虑过使用进行保存前检查 在一次

假设您有一个“define”Parse.com云代码函数

Parse.Cloud.define("exampleDefineFunction", function(request, response)
    {
    ...
    response.success("ok")
    ...
    response.error("doh")
    });
我想做另一个云代码函数

哪些调用连续多次定义函数

一个等待下一个,就像在一个


可以这样做吗?

您是否考虑过使用进行保存前检查

在一次执行一个方面,您可以考虑使用一个队列来排队。如果承诺被解决或拒绝,每个承诺都将有自己的一对回调来处理


此外,当前的设置似乎会很快使您达到API请求限制。您是否考虑过使用URL数组执行单个查询以作为约束进行检查。通过这一查询,您将知道数组中的哪些项已经存在。

您是否考虑过使用进行预保存检查

在一次执行一个方面,您可以考虑使用一个队列来排队。如果承诺被解决或拒绝,每个承诺都将有自己的一对回调来处理


此外,当前的设置似乎会很快使您达到API请求限制。您是否考虑过使用URL数组执行单个查询以作为约束进行检查。通过这一查询,您将知道数组中的哪些项已经存在。

我认为这应该可以解决问题

在这个场景中,我们希望使用
Parse.Promise.when()

返回一个新的承诺,当所有输入承诺 问题解决了。如果列表中的任何承诺失败,则返回 承诺将因最后一个错误而失败。如果他们都成功了,那么 返回的承诺将成功,其结果是 所有的投入承诺

我试图让它相当自我记录,但让我知道,如果你有任何问题。希望这有帮助

// The promise chain for bulk image collection
Parse.Cloud.define("fetchBulkImages", function(request, response) {

    // Array of URLs
    var urls = request.object.get("urls");

    // Array of promises for each call to fetchImage
    var promises = [];

    // Populate the promises array for each of the URLs
    _.each(urls, function(url) {
        promises.push(Parse.Cloud.run("fetchImage", {"url":url}));
    })

    // Fulfilled when all of the fetchImage promises are resolved
    Parse.Promise.when(promises).then(function() {
        // arguments is a built-in javascript variable 
        // will be an array of fulfilled promises
        response.success(arguments);
    },
    function (error) {
        response.error("Error: " + error.code + " " + error.message);
    });

});

// Your scraping function to load each individual image
Parse.Cloud.define("fetchImage", function(request, response) {
    ...
    response.success("image successfully loaded")
    ...
    response.error("Error: " + error.code + " " + error.message);
});

我想这应该能奏效

在这个场景中,我们希望使用
Parse.Promise.when()

返回一个新的承诺,当所有输入承诺 问题解决了。如果列表中的任何承诺失败,则返回 承诺将因最后一个错误而失败。如果他们都成功了,那么 返回的承诺将成功,其结果是 所有的投入承诺

我试图让它相当自我记录,但让我知道,如果你有任何问题。希望这有帮助

// The promise chain for bulk image collection
Parse.Cloud.define("fetchBulkImages", function(request, response) {

    // Array of URLs
    var urls = request.object.get("urls");

    // Array of promises for each call to fetchImage
    var promises = [];

    // Populate the promises array for each of the URLs
    _.each(urls, function(url) {
        promises.push(Parse.Cloud.run("fetchImage", {"url":url}));
    })

    // Fulfilled when all of the fetchImage promises are resolved
    Parse.Promise.when(promises).then(function() {
        // arguments is a built-in javascript variable 
        // will be an array of fulfilled promises
        response.success(arguments);
    },
    function (error) {
        response.error("Error: " + error.code + " " + error.message);
    });

});

// Your scraping function to load each individual image
Parse.Cloud.define("fetchImage", function(request, response) {
    ...
    response.success("image successfully loaded")
    ...
    response.error("Error: " + error.code + " " + error.message);
});

因此,我们的想法是,您输入一个URL数组,并希望拥有一个云功能,该功能将从每个站点提取/刮取数据,但前提是该站点尚未被访问?访问URL的顺序是否重要,或者您是否正在考虑连续访问URL以限制请求的速率?我现在必须离开,但同时这看起来可能有用:。我稍后再查,祝你好运!嗨,拉塞尔,很对。为了向新来的读者澄清,问题是在某种链中使用Parse.Cloud.define函数——如何在云代码中重复调用这些函数。我能够在承诺链中使用“普通”函数(返回承诺),在云代码中重复调用这些函数。因此,我的想法是,你输入一个URL数组,你希望有一个云函数,可以从每个站点提取/刮取数据,但前提是它还没有被访问过?访问URL的顺序是否重要,或者您是否正在考虑连续访问URL以限制请求的速率?我现在必须离开,但同时这看起来可能有用:。我稍后再查,祝你好运!嗨,拉塞尔,很对。为了向新来的读者澄清,问题是在某种链中使用Parse.Cloud.define函数——如何在云代码中重复调用这些函数。我能够在承诺链中使用“正常”函数(返回承诺),在云代码中重复调用这些函数。嗨,Russell,尽管我还没有实际测试过它-你已经得到了唯一内聚的答案!所以你应该得到奖金,谢谢你。这些将并行运行,而不是串行运行。嗨,罗素,尽管我还没有实际测试过这个-你已经得到了唯一有凝聚力的答案!所以你应该得到奖金,谢谢你。这些将并行运行,而不是串行运行。