【问题标题】:HttpRequest using multiple urls from array Parse.com CloudcodeHttpRequest 使用数组 Parse.com Cloudcode 中的多个 url
【发布时间】:2015-12-19 07:43:17
【问题描述】:

如何使用数组中的 url 字符串处理多个 httpRequest?以下是我迄今为止尝试过的内容,但每次尝试部署要解析的代码时都会收到错误消息。

     Parse.Cloud.define("FetchData", function(request, response) {
                           Parse.Cloud.useMasterKey();
                           var urls = ["url1", "url2"]

                           return Parse.Cloud.httpRequest({
                            //For loop below FAILS**
                             for (i = 1; i < 8; i++) {
                            url: urls[i]
                            },

               }).then(function(httpResponse) {
         //Handle Json here                                
response.success("Success"); 
    },
       function (error) {

response.error("Error: " + error.code + " " + error.message);
        });
     });

【问题讨论】:

  • 不应该这样:for (i = 1; i &lt; 8; i++) { url: urls[i] }, 是:for (i = 1; i &lt; 8; i++) { return {url: urls[i]} }, 或类似的东西吗?您的代码在 for 循环中没有多大意义。

标签: javascript swift parse-platform


【解决方案1】:

Cloud.httpRequest 返回一个发出请求的承诺。循环调用它,收集这些承诺,然后使用 Promise.when() 创建一个新的承诺,当所有的 http 请求承诺都被履行时:

var _ = require("underscore"); //so we can map over an array
var urls = ["url1", "url2", "url3"];

Parse.Cloud.define("FetchData", function(request, response) {
    var promises = _.map(urls, function(url) {
        return Parse.Cloud.httpRequest({ url:url });
    });
    Parse.Promise.when(promises).then(function() {
        response.success(_.toArray(arguments)); 
    }, function (error) {
        response.error("Error: " + error.code + " " + error.message);
    });
});

【讨论】:

  • 循环应该放在哪里?在httpResponse 函数或httpRequest
  • 它在我建议的地方工作。 (map 循环遍历 url)。这个想法是在一个循环中发出请求,保留该循环生成的 Promise,然后一起运行它们。
  • 好的,这很有道理,谢谢。不幸的是,我每次运行它时都会收到一个错误。这是error message的截图
  • 这看起来像是此代码成功运行的下游错误。我敢打赌所有那些 [object, object] 的东西都是 http 响应
  • @kye 然后,请让 unworking 代码出现在您的问题中。如果您的问题没有已经工作的代码,它就有更多机会真正帮助其他人:)。此外,通常不赞成直接使用答案中的代码编辑您的问题。帮助吸血鬼的气味。
猜你喜欢
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
  • 2016-01-12
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多