javascript - 如何在parse.com的异步方法中使用for循环

标签 javascript parse-platform

我想在for循环中调用parse.com的函数,但是当我将函数放入for循环中时,for循环就完成了,而函数没有响应。

for (var i = 0; i <tourPackage.length; i++) { 
        var Apackage = tourPackage[i].attributes;  
        tourPackageDest.set("package_id",tourPackage[i].id);
       tourPackageDest.set("itinerary",Apackage.holiday_short_detail);
        var SD = Apackage.destination.split(',');
            for(var k=0; k<SD.length;k++){
                var destPlace =                           Parse.Object.extend("Cities_World");//DestinationMaster
                 var query = new Parse.Query(destPlace);
                query.equalTo("place_name", SD[k]);
                query.find().then(function(results){
                    console.log(results);
                });
                tourPackageDest.save(null,{
                    success: function(Tpackage){
                        console.log("Successfully saved in PackageItineraryMaster");
                        }
                });
            }

}

最佳答案

您调用的许多方法(例如,.find()、.save())都是异步的。从表面上看,您正在编写代码,就好像它们是同步方法一样。以下是如何构建代码以解决这种异步性的示例 ( via the Parse docs ):

var query = new Parse.Query("Comments");
query.equalTo("post", 123);

query.find().then(function(results) {
  // Collect one promise for each delete into an array.
  var promises = [];
  _.each(results, function(result) {
    // Start this delete immediately and add its promise to the list.
    promises.push(result.destroy());
  });
  // Return a new promise that is resolved when all of the deletes are finished.
  return Parse.Promise.when(promises);

}).then(function() {
  // Every comment was deleted.
});

基本上,您希望将异步函数中的每个 promise 添加到一个数组中,并创建一个新的 promise ,当所有这些 promise 都得到解决时,该新的 promise 就会得到解决。

关于javascript - 如何在parse.com的异步方法中使用for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34966977/

相关文章:

javascript - 如何仅在悬停时显示 CSS 过渡效果?

java - 子类化 ParseUser 时出现 ClassCastException (Parse.com)

java - 如何在解析查询中包含超时?

ios - 为什么我登录的 segue 不起作用?

javascript - 通过数组查找项目

javascript - 如何在没有服务器组件的情况下使用 Angular-fullstack?

javascript - 将 json 分解为函数参数并发送到函数

ios - 如何在 Swift 中从 Parse Cloud Code 接收字符串数组?

ios - 使用 Parse 在 PFQuery 之外重新调整空白数组的数组。

php - 站点链接和输入字段在 iPad 中不起作用