2016-04-07 31 views
0

iOS uygulamamda istekleri bir tablodan çeken ve beğeniler/yorumlar başka birinden alan bir bildirim ekranım var. İki sorgumun sonuçlarını döndüren tek bir işlevi çağırarak yalnızca bir ağ çağrısı yapmak istiyorum. Aramaya iOS için ayrıştırma SDK 1.1.12 kullanarak ve hızlı am/İki bulut kodu işlevini bir işlevle birleştirin

talep Fonksiyon

Parse.Cloud.define("loadRequestNotifications", function(request, response){ 
    var currentUser = Parse.User.current(); 

    var query1 = new Parse.Query("Requests"); 
    query1.equalTo("requestUser", currentUser); 

    var username = currentUser.get("username");  

    var query2 = new Parse.Query("Requests"); 
    query2.equalTo("driver", username); 

    var main1 = Parse.Query.or(query1, query2); 
    main1.include("drivePointer"); 
    main1.include("drivePointer.driver"); 
    main1.limit(15); 

    main1.find({ 
     success: function(results) { 

      response.success(results); 

     }, 
     error: function(error) 
     { 
     response.error(error); 
     } 
    }); 
}); 

Yorumlar

Parse.Cloud.define("loadLikesAndCommentsNotifications", function(request, response) { 
    var currentUser = Parse.User.current(); 

    var query3 = new Parse.Query("Posts"); 
    query3.equalTo("driver", currentUser); 

    var query4 = new Parse.Query("Posts"); 
    query4.equalTo("passengers", currentUser.get("objectId")); 

    var main2 = new Parse.Query.or(query3, query4); 

    var main3 = new Parse.Query("Comments"); 
    main3.matchesKeyInQuery('postId', 'objectId', main2); 

    var main4 = new Parse.Query("Comments"); 
    main4.equalTo("commentBy", currentUser); 

    var activityQuery = new Parse.Query.or(main3, main4); 
    activityQuery.include("commentBy"); 
    activityQuery.limit(15); 

    activityQuery.find({ 
     success: function(results) { 
      response.success(results); 
     }, 
     error: function(error) 
     { 
     response.error(error); 
     } 
    }); 
}); 

Beğeni: Burada

kodum şu anda işlevsel olmasıdır bu işlevler. Sadece kombine birini arayabilmek istiyorum.

cevap

0

buna benzer bir şey deneyin: Nesne #: i ve `Parse.Cloud.define ("loadRequestAndLikesAndCommentNotifications") denedim

function loadLikesAndCommentsNotifications (request) { 
    var currentUser = Parse.User.current(); 

    var query3 = new Parse.Query("Posts"); 
    query3.equalTo("driver", currentUser); 

    var query4 = new Parse.Query("Posts"); 
    query4.equalTo("passengers", currentUser.get("objectId")); 

    var main2 = new Parse.Query.or(query3, query4); 

    var main3 = new Parse.Query("Comments"); 
    main3.matchesKeyInQuery('postId', 'objectId', main2); 

    var main4 = new Parse.Query("Comments"); 
    main4.equalTo("commentBy", currentUser); 

    var activityQuery = new Parse.Query.or(main3, main4); 
    activityQuery.include("commentBy"); 
    activityQuery.limit(15); 

    return activityQuery.find(); 
} 

Parse.Cloud.define("loadLikesAndCommentsNotifications", function(request, response){ 
    loadLikesAndCommentsNotifications(request).then(response.success, response.error); 
}); 

... 
// Similar code for loadRequestNotifications 
... 

Parse.Cloud.define("loadRequestAndLikesAndCommentsNotifications", function(request, response){ 
    loadLikesAndCommentsNotifications(request).then(function (results) { 
     var finalResults = { likesAndComments: results}; 
     loadRequestNotifications(request).then(function (results) { 
      finalResults.request = results; 
      response.success(finalResults); 
     }, response.error); 
    }, response.error); 
}); 
+0

' ilk işlevi çağırmak mümkün değildir ' – kareem

+0

' TypeError loadLikesAndCommentsNotifications' 'un 'catch'' yönteminde bir yöntemi yok, hata var, izin verilmiyor mu? – kareem

+0

deneyin .error (response.error) yerine ... Cevabı düzenleyeceğim. –